",promise:i.resolve()}}}},"core/src/lib/actions/helpers/decorators/decorateNonGlobalJavaScriptCode.js":{script:function(n,e,t){"use strict";var i=t("@adobe/reactor-promise"),a=0;n.exports=function(n,e){var t="_runScript"+ ++a,r=new i((function(e,a){_satellite[t]=function(r){delete _satellite[t],new i((function(e){e(r.call(n.event.element,n.event,n.event.target,i))})).then(e,a)}}));return{code:'",promise:r}}}},"core/src/lib/actions/helpers/decorators/decorateHtmlCode.js":{script:function(n,e,t,i){"use strict";var a=t("@adobe/reactor-promise"),r=0,o={};window._satellite=window._satellite||{},window._satellite._onCustomCodeSuccess=function(n){var e=o[n];e&&(delete o[n],e.resolve())},window._satellite._onCustomCodeFailure=function(n){var e=o[n];e&&(delete o[n],e.reject())};var s=function(n){return-1!==n.indexOf("${reactorCallbackId}")},c=function(n,e){return n.replace(/\${reactorCallbackId}/g,e)},u=function(n){return n.settings.isExternal};n.exports=function(n,e){var t;return u(n)&&(e=i.replaceTokens(e,n.event)),s(e)?(t=new a((function(n,e){o[String(r)]={resolve:n,reject:e}})),e=c(e,r),r+=1):t=a.resolve(),{code:e,promise:t}}}},"core/src/lib/actions/helpers/getSourceByUrl.js":{script:function(n,e,t){"use strict";var i=t("@adobe/reactor-load-script"),a=t("@adobe/reactor-promise"),r=t("../../helpers/findPageScript").byRegexPattern,o={},s={},c=function(n){return s[n]||(s[n]=i(n)),s[n]};_satellite.__registerScript=function(n,e){var t;if(document.currentScript)t=document.currentScript.getAttribute("src");else{var i=new RegExp(".*"+n+".*");t=r(i).getAttribute("src")}o[t]=e},n.exports=function(n){return o[n]?a.resolve(o[n]):new a((function(e){c(n).then((function(){e(o[n])}),(function(){e()}))}))}}},"core/src/lib/events/helpers/pageLifecycleEvents.js":{script:function(n,e,t){"use strict";var i=t("@adobe/reactor-window"),a=t("@adobe/reactor-document"),r=-1!==i.navigator.appVersion.indexOf("MSIE 10"),o="WINDOW_LOADED",s="DOM_READY",c="PAGE_BOTTOM",u=[c,s,o],l=function(n,e){return{element:n,target:n,nativeEvent:e}},d={};u.forEach((function(n){d[n]=[]}));var f=function(n,e){u.slice(0,m(n)+1).forEach((function(n){h(e,n)}))},p=function(){return"complete"===a.readyState?o:"interactive"===a.readyState?r?null:s:void 0},m=function(n){return u.indexOf(n)},h=function(n,e){d[e].forEach((function(e){g(n,e)})),d[e]=[]},g=function(n,e){var t=e.trigger,i=e.syntheticEventFn;t(i?i(n):null)};i._satellite=i._satellite||{},i._satellite.pageBottom=f.bind(null,c),a.addEventListener("DOMContentLoaded",f.bind(null,s),!0),i.addEventListener("load",f.bind(null,o),!0),i.setTimeout((function(){var n=p();n&&f(n)}),0),n.exports={registerLibraryLoadedTrigger:function(n){n()},registerPageBottomTrigger:function(n){d[c].push({trigger:n})},registerDomReadyTrigger:function(n){d[s].push({trigger:n,syntheticEventFn:l.bind(null,a)})},registerWindowLoadedTrigger:function(n){d[o].push({trigger:n,syntheticEventFn:l.bind(null,i)})}}}},"core/src/lib/helpers/textMatch.js":{script:function(n){"use strict";n.exports=function(n,e){if(null==e)throw new Error("Illegal Argument: Pattern is not present");return null!=n&&("string"==typeof e?n===e:e instanceof RegExp&&e.test(n))}}}}}},company:{orgId:"A8AB776A5245B4220A490D44@AdobeOrg",dynamicCdnEnabled:!1},property:{name:"NEWS - Ramen Sites",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"],undefinedVarsReturnEmpty:!1,ruleComponentSequencingEnabled:!0},id:"PR9749de11b8fb44f887a3dd2923726909"},rules:[{id:"RL00aff124ba304d83b9aabc6d22ecf98f",name:"50 - Action - social share",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["nbcnews.com","today.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"(function() {\n // Tracking social shares from article body\n $t('on', 'article_social_share', function(e) {\n var actionContextData = {\n 'news.linkmoduledetail': 'Article Inline Share Bar',\n 'news.linkmoduletype': 'Article',\n 'news.socialplatform': $t(e.type + '.platform', s.noValue)\n };\n\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', 'article share');\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n });\n \n // Tracking social shares in the top navbar\n $t('on', 'mbt_navbar_share', function(e) {\n var actionContextData = {\n 'news.linkmoduledetail': 'Article Share Bar',\n 'news.linkmoduletype': 'Article',\n 'news.socialplatform': $t(e.type + '.platform', s.noValue)\n };\n\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', 'article share');\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n });\n \n // Tracking social shares from the Activity tab in My News \n $t('on', 'article_social_share_remove', function(e) {\n var actionContextData = {\n 'news.linkmoduledetail': 'Article MyNews Share Bar',\n 'news.linkmoduletype': 'Article',\n 'news.socialplatform': $t(e.type + '.platform', s.noValue)\n };\n\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', 'article share');\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n });\n\n // Tracking social shares from the body of Recipe pages \n $t('on', 'rmn_recipe_social_share', function(e) {\n var actionContextData = {\n 'news.linkmoduledetail': 'Recipe Body Share Bar',\n 'news.linkmoduletype': 'Recipe',\n 'news.socialplatform': $t(e.type + '.platform', s.noValue)\n };\n\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', 'article share');\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n });\n\n })()\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL0177d00981974668b7b3724ad0498845",name:"50 - Action - word_search [d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals $t, s */\n(function () {\n let trackAdobe = (situation, actionContextData) => {\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', situation);\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n };\n\n $t('on', 'word_search', (e, data) => {\n trackAdobe('TODAY\\'s find', {\n 'news.linkmoduledetail': data.action === 'end' ? 'complete' : `${data.action}`,\n 'news.linkmoduletype': 'word search',\n });\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL03f81239ae884285b99c63c885501246",name:"50 - Nielsen DCR - SDK Static [d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals $t, NOLBUNDLE, s, BI */\n(function () {\n BI.dependsOn(['NOLBUNDLE', 's']).then(() => {\n var noValue = 'No-Section';\n var debugState = false;\n\n //setup brand settings per top level domain\n var topLevelDomain = s.topLevelDomain;\n var brandSettings = {\n 'nbcnews.com': { apid: 'P77C1EF86-4FB6-4258-B5E1-7D55145D3EA1' },\n 'today.com': { apid: 'PD12C0467-484A-43B1-8AE9-1DC91ED3A0CD' },\n 'msnbc.com': { apid: 'PBC3231CF-CE3F-41B4-8FE7-3E0732885D86' },\n 'telemundo.com': {\n apid: 'P33BED63F-E658-4824-B66E-0C1261B43EF5',\n customValues: {\n segB: 'Telemundo Web',\n segC: 'Telemundo Web \u2013 Telemundo \u2013 Noticias',\n },\n },\n };\n\n var currentBrand = brandSettings[topLevelDomain] || brandSettings['nbcnews.com']; //default to nbcnews\n var jsonLdDataset = $t('jsonLd.Dataset.0', {});\n var ldSection = jsonLdDataset.section ?? jsonLdDataset.subVertical ?? jsonLdDataset.subSection ?? jsonLdDataset.pageType ?? noValue;\n\n var section = ldSection.replaceAll(/[^A-Za-z]/g, '-');\n\n var contentMetadataObject = {\n type: 'static',\n assetid: jsonLdDataset.packageId || document.location.pathname.replace(/\\//g, '_'),\n section: section,\n };\n\n if (currentBrand.customValues) {\n contentMetadataObject = Object.assign(contentMetadataObject, currentBrand.customValues);\n }\n\n var _nSdkInstance = NOLBUNDLE.nlsQ(currentBrand.apid, 'nlsnInstance', {\n nol_sdkDebug: debugState ? 'debug' : 'off',\n });\n\n _nSdkInstance.ggPM('staticstart', contentMetadataObject);\n\n window.nielsenStaticMetadata = contentMetadataObject;\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL06d85046def445a1bfc79dfe69757ddd",name:"60 - univideo - player adapter (jw player) [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:60}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,
source:"/* globals BI, $t */\n\n(function () {\n const logEvent = (window.BI && BI.console && BI?.console?.build('uni_jw')) || Function.prototype;\n\n const urlParams = new URLSearchParams(window.location.search);\n const ignorePreviousJWEvents = urlParams.has('univideo-jw-ignore-previous-events');\n\n $t('register', 'uni_jw_error');\n const uniEvent = (window.uniVideo && window.uniVideo?.event) || {};\n\n let _jwStateMap = {\n buffering: 'stop',\n idle: 'stop',\n paused: 'pause',\n playing: 'play',\n };\n\n let _jwAdPosMap = {\n pre: 'preroll',\n mid: 'midroll',\n post: 'postroll',\n };\n\n const jwUniBind = function (eventName, data, _jwPlayer, uniTrack) {\n // Logging events, but excluding \"progress\" events\n if (!['time', 'adTime'].includes(eventName)) {\n logEvent(eventName, { eventData: data, videoData: uniTrack.videoData(), videoState: uniTrack.videoState(), videoAdData: uniTrack.videoAdData() });\n }\n\n switch (eventName) {\n case 'beforePlay':\n uniTrack.videoState({\n fullScreen: _jwPlayer.getFullscreen(),\n isMuted: _jwPlayer.getMute(),\n });\n uniTrack.videoData({\n // see 'gamma_metadata_updated'\n videoCount: uniTrack.videoData().videoCount + 1,\n adLength: 0,\n });\n break;\n case 'adPause':\n case 'pause':\n if (uniTrack.videoState().playState === 'play') {\n uniTrack.videoState({ playState: 'pause' });\n uniTrack(uniEvent.PAUSE);\n }\n break;\n case 'fullscreen':\n uniTrack.videoState({ fullScreen: data.fullscreen });\n uniTrack(uniEvent.FULLSCREEN);\n break;\n case 'adLoaded':\n uniTrack(uniEvent.AD_LOADED);\n uniTrack.videoAdData({\n adInsertionType: data.linear || '',\n adServer: data.client || '',\n adPosition: _jwAdPosMap[data.adposition] || '',\n custom: data,\n });\n break;\n case 'adImpression':\n case 'adItem':\n if (data.id && data.id !== uniTrack.videoData().adId) {\n uniTrack.videoData({\n adId: data.id,\n ...(data.adtitle && { adName: data.adtitle }),\n });\n }\n uniTrack.videoAdData({\n adInsertionType: data.linear || '',\n adServer: data.client || '',\n adPosition: _jwAdPosMap[data.adposition] || '',\n custom: data,\n });\n break;\n case 'adPlay':\n uniTrack.videoState({\n inAd: true,\n playState: 'play',\n });\n uniTrack.videoAdData({\n adInsertionType: data.linear || '',\n adServer: data.client || '',\n adPosition: _jwAdPosMap[data.adposition] || '',\n custom: data,\n });\n uniTrack(uniEvent.AD_PLAY);\n break;\n case 'adTime':\n if (!uniTrack.videoState().inAd) {\n uniTrack.videoData({\n adLength: data.duration,\n });\n uniTrack.videoAdData({\n adInsertionType: data.linear || '',\n adServer: data.client || '',\n adPosition: _jwAdPosMap[data.adposition] || '',\n custom: data,\n });\n uniTrack(uniEvent.AD_PLAY);\n }\n uniTrack.videoState({\n inAd: true,\n playState: 'play',\n });\n uniTrack(uniEvent.PROGRESS);\n break;\n case 'adComplete':\n uniTrack.videoState({\n inAd: false,\n playState: 'stop',\n adPosition: uniTrack.videoState().adPosition + 1,\n });\n uniTrack.videoAdData({}, true);\n uniTrack(uniEvent.AD_COMPLETE);\n break;\n case 'adBreakStart':\n if (data.adposition) {\n // Set adPodName to 'preroll', 'midroll', 'postroll'\n uniTrack.videoData({\n adPodName: _jwAdPosMap[data.adposition],\n });\n }\n uniTrack(uniEvent.AD_BREAK_START);\n break;\n case 'adBreakEnd':\n uniTrack.videoState({\n adPosition: 1,\n adBreakPosition: uniTrack.videoState().adBreakPosition + 1,\n });\n uniTrack.videoData({\n playheadPosition: 0,\n });\n uniTrack(uniEvent.AD_BREAK_COMPLETE);\n break;\n case 'ready':\n uniTrack(uniEvent.INIT);\n break;\n case 'mute':\n uniTrack.videoState({\n isMuted: data.mute,\n });\n break;\n case 'play':\n uniTrack(uniEvent.PLAY);\n // update state AFTER play fires so adapters can reference the previous state:\n // (stop => play = \"start\")\n // TODO: Support \"START\" event in UniVideo\n // https://nbcnewsdigital.atlassian.net/browse/AFT-869\n uniTrack.videoState({ playState: 'play' });\n break;\n case 'seek':\n uniTrack.videoState({ playState: 'seek' });\n uniTrack(uniEvent.SEEK_START);\n break;\n case 'seeked':\n uniTrack.videoState({\n playState: _jwStateMap[_jwPlayer.getState()],\n });\n uniTrack(uniEvent.SEEK_COMPLETE);\n break;\n case 'complete':\n uniTrack.videoState({ playState: 'stop' });\n uniTrack(uniEvent.COMPLETE);\n break;\n case 'time':\n uniTrack.videoData({\n playheadPosition: data.position * 1000,\n });\n // Only fire \"PROGRESS\" events when the video is playing\n // \"time\" event fires during seek\n if (uniTrack.videoState().playState === 'play') {\n uniTrack(uniEvent.PROGRESS);\n }\n break;\n case 'playlistItem':\n uniTrack.videoData({\n duration: data?.item?.duration,\n adId: data?.item?.file || '',\n mediaURL: 'blahablahs',\n });\n if (uniTrack.videoState().playState === 'play') {\n uniTrack(uniEvent.STOP);\n uniTrack.videoState({\n playState: 'stop',\n });\n }\n\n // Indicates that the asset has been loaded by the player\n // Better indicator of \"VIDEO_LOADED\" than $t('gamma_metadata_updated')\n uniTrack(uniEvent.VIDEO_LOADED);\n break;\n case 'playAttemptFailed':\n case 'setupError':\n case 'error':\n uniTrack(uniEvent.ERROR);\n $t('track', 'uni_jw_error', {\n message: data.message || data.error,\n code: data.code || null,\n sourceError: data.sourceError || null,\n });\n break;\n case 'adError':\n uniTrack(uniEvent.AD_ERROR);\n $t('track', 'uni_jw_error', {\n message: data.message || data.error,\n code: data.code || null,\n sourceError: data.sourceError || null,\n });\n break;\n case 'bufferChange':\n case 'buffer':\n uniTrack.videoState({ playState: 'buffer' });\n uniTrack(uniEvent.BUFFERING_START);\n break;\n case 'levels':\n case 'levelsChanged':\n case 'visualQuality':\n if (data.bitrate) {\n uniTrack.videoData({\n bitrateInKbps: data.bitrate / 1000,\n });\n uniTrack(uniEvent.UPDATE_QUALITY);\n }\n break;\n case 'skipAd':\n case 'skipAdBreak':\n uniTrack(uniEvent.AD_BREAK_SKIPPED);\n break;\n default:\n break;\n }\n };\n\n const subscribeUniEventsToJW = function ({ player, callingEvent, uniTrack }) {\n // Initializing video data\n uniTrack.videoData({\n playbackAdapter: 'JW Player',\n playbackAdapterVersion: player.version || '',\n custom: {\n ...uniTrack.videoData(),\n playerVersion: player.version || '',\n appVersion: $t('jsonLd.Dataset.0.appVersion', undefined),\n appName: 'ramen',\n },\n });\n\n const calculateInitiate = function (_data) {\n const data = _data[0] ?? _data;\n const isManual = data.nowPlayingInitiator === 'manual' || data.autoPlay === false;\n const isContinuous = uniTrack.videoData().videoCount > 0;\n\n return isManual ? 'manual' : isContinuous ? 'continuous' : 'auto';\n };\n\n function handleMetadataUpdated(_e, data) {\n // Doing nothing when metadata is updated\n // for a different player instance.\n if (data?.player?.id !== player?.id) return;\n\n // uniTrack.videoData does not merge nested properties.\n // Handle \"custom\" property merging manually.\n // NOTE: This is a shallow-merge.\n let uniData = convertVideoMetadataToUniVideo(data);\n let customData = uniData.custom;\n delete uniData.custom;\n uniTrack.videoData({\n ...uniData,\n playInitiate: calculateInitiate(data),\n custom: {\n ...uniTrack.videoData().custom,\n ...customData,\n },\n });\n }\n\n $t('on', 'gamma_metadata_updated', handleMetadataUpdated);\n\n const existingMetadataEvent = $t('gamma_metadata_updated');\n\n // Re-firing previously fired events\n if (!ignorePreviousJWEvents && existingMetadataEvent != '') {\n handleMetadataUpdated({ type: 'gamma_metadata_updated' }, existingMetadataEvent);\n }\n\n // https://docs.jwplayer.com/players/reference/javascript-player-api-introduction\n const jwEventList = [\n 'adBreakEnd',\n 'adBreakStart',\n 'adComplete',\n 'adError',\n 'adImpression',\n 'adItem', // Not fired?\n 'adLoaded', // Not fired?\n 'adMeta', // Not fired?\n 'adPause',\n 'adPlay',\n // 'adSchedule',\n 'adTime',\n 'adViewableImpression',\n // 'beforeComplete',\n 'beforePlay',\n // 'breakpoint', // Not useful, not mentioned in JW docs\n 'complete',\n 'error',\n // 'firstFrame',\n 'fullscreen',\n 'meta',\n 'mute',\n 'pause',\n 'play',\n 'playAttemptFailed',\n // 'playlist',\n 'playlistItem', // GAMMA player doesn't use the JW Playlist features, but does inject the item that is queued to play\n 'ready',\n 'seek',\n 'seeked',\n 'setupError',\n 'time',\n // 'viewable', // Not recommended in iframes\n 'warning',\n 'levels',\n 'levelsChanged',\n 'visualQuality',\n ];\n\n if (callingEvent === 'jwPlayerLiveStreamReadyEvent') {\n uniTrack.videoData({\n streamType: 'linear',\n });\n }\n\n jwEventList.forEach((event) => {\n player.on(event, (data) => {\n let trackEvent = true;\n\n if (event === 'meta' && data.metadata && data.metadata?.metadataType === 'discontinuity') {\n trackEvent = false;\n }\n\n if (event && trackEvent) {\n // pass a reference to the player\n // only use this to get player state!\n // calling play() pause() etc. will invoke the player's methods\n jwUniBind(event, data, player, uniTrack);\n }\n });\n });\n };\n\n // This is where player instances are created,\n // and the primary place where control flow starts\n // to flow to other functions in this rule.\n function handlePlayerLoaded(_e, data) {\n let uniquePlayerInstanceId = data?.player?.id;\n var uniTrack = window.uniVideo.buildUniTrack({ uniquePlayerInstanceId });\n subscribeUniEventsToJW({ callingEvent: _e.type, ...data, uniTrack });\n }\n\n $t('on', 'gamma_jw_player_loaded', handlePlayerLoaded);\n\n const existingPlayerLoadedEvent = $t('gamma_jw_player_loaded');\n\n if (!ignorePreviousJWEvents && existingPlayerLoadedEvent != '') {\n handlePlayerLoaded({ type: 'gamma_jw_player_loaded' }, existingPlayerLoadedEvent);\n }\n\n // Joins taxonomy data together to create a more\n // compact representation. Primarily important for\n // Telemundo, which has extra taxonomy data.\n function getAdditionalTerms(eventDataRaw) {\n var terms = eventDataRaw.taxonomy && eventDataRaw.taxonomy?.additionalTerms || [];\n var category = [];\n var keyword = [];\n\n terms.forEach(function (term) {\n if (term?.path?.indexOf('category') != -1 && category.indexOf(term.name) == -1) {\n category.push(term.name);\n }\n if (term?.path?.indexOf('keyword') != -1 && keyword.indexOf(term.name) == -1) {\n keyword.push(term.name);\n }\n });\n\n return {\n keyword: keyword.join(','),\n category: category.join(','),\n };\n }\n\n function getTelemundoSource(data) {\n if (!document.location.hostname.includes('telemundo.com')) return;\n return data.taxonomy?.primarySection?.name;\n }\n\n function convertVideoMetadataToUniVideo(_data) {\n const data = _data[0] ?? _data;\n if (data?.player && data.player?.version) delete data.player; // Deleting the player reference. This is the whole player, it is unsafe to keep it in UniVideo.videoData.custom!\n const additionalTerms = getAdditionalTerms(data);\n const resultMetaData = {\n bitrateInKbps: data?.videoAssets?.[0]?.bitrate / 1000 ?? 0,\n dateBroadcast: data.dateBroadcast ? new Date(Date.parse(data.dateBroadcast)).toISOString() : '',\n datePublished: data.datePublished ? new Date(Date.parse(data.datePublished)).toISOString() : '',\n duration: (() => {\n const assetDuration = data?.videoAssets?.[0]?.assetDuration;\n if (typeof assetDuration === 'number') return assetDuration;\n\n // For live content, use 1800 seconds\n const isLive = ['nonbroadcastlivevideo', 'live'].includes((data?.videoType || '').toLowerCase());\n return isLive ? 1800 : null;\n })(),\n guid: data?.mpxMetadata?.guid ?? '',\n mpxId: data?.mpxMetadata?.id ?? '',\n mediaURL: data?.videoAssets[0]?.publicUrl ?? '',\n newsNetwork: data?.publisher?.name ?? '',\n playListId: data?.associatedVideoPlaylist?.id ?? '',\n playListLabel: data?.associatedVideoPlaylist?.headline?.primary ?? '',\n sentiment: data?.sentiment ?? '',\n source: getTelemundoSource(data) ?? data?.source?.name ?? '',\n streamType: ['nonbroadcastlivevideo', 'live'].includes((data?.videoType || '').toLowerCase()) ? 'linear' : 'vod',\n title: data?.headline?.primary ?? '',\n videoType: data?.videoType ?? '',\n custom: { ...data, additionalTerms }, // All other data\n };\n\n return resultMetaData;\n }\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL0d5f20cf661d41e286215bf319347c39",name:"50 - Search Icon Click Tracking [d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"\n(function () {\n function trackEvent(eventName, linkName, getActionContextData) {\n $t('on', eventName, function (e, data) {\n\n var actionContextData = getActionContextData(e, data);\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', linkName);\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n });\n }\n\n trackEvent('mbt_navbar_searchIcon', 'Search Icon Click', (e, data) => ({\n 'news.linkmoduledetail': 'nav bar',\n 'news.linkmoduletype': 'search icon click',\n }));\n\n trackEvent('mbt_navbar_searchHamburger', 'Search Icon Click', (e, data) => ({\n 'news.linkmoduledetail': 'hamburger menu',\n 'news.linkmoduletype': 'search icon click',\n }));\n\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL126a4a8c3f9b4509bd1f2631042130ac",name:"50 - Action - rmn_webNoti_* [d:msnbc.com, d:today.com, regex_path]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50},{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","today.com"]},timeout:2e3},{modulePath:"core/src/lib/conditions/path.js",settings:{paths:[{value:"/embedded-video/",valueIsRegex:!0},{value:"/embedded-newsletter/",valueIsRegex:!0}]},negate:!0,timeout:2e3}],actions:[]},{id:"RL1615d2bf60f34b92aacbd223f8ed70fb",name:"DR - Action - Rate Recipe [d:today.com]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RC6f828e1c33e24b24acbe2750b6cd264e-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL175b6b1a80634a23b124bc78f6bc74c8",name:"50 - Action - mbt_video_socialShare [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"\n/* globals $t, s */\n$t('on', 'mbt_video_socialShare', function (e) {\n var actionContextData = {\n 'news.linkmoduledetail': 'Video',\n 'news.linkmoduletype': 'Video Share Bar',\n 'news.socialplatform': $t(e.type + '.platform', s.noValue)\n };\n s.contextData = s.extendArray(s.contextData, actionContextData);\n\n //track action\n s.tl(true, 'o', 'video share');\n\n //cleanup values after action\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n});\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL1ae31127ccb84ad59340c153c4c3af70",name:"DR - Action - ramen_authflow [d:today.com]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com","nbcnews.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RCbf35e2a56c4943c7b98316d203b7a836-source.min.js",language:"javascript",isExternal:!0}},{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RC32baff9fd8cd4e0aad3462ae5c9c40b9-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL1e1e07cb70dd4754ba9dbb23624e7521",name:"dr-amazon-native-commerce-ads",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["nbcnews.com","today.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RCff54c0fbb15d49ad86115b28193389eb-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RC225ac9d6a48f4a23b02c84ce795b3e5b-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RC10ae6175ef274cc2be0a6e4c5c044dcc-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL1ed596da4276407d8dc9b339cf975586",name:"50 - Action - mbt_curtain_ [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"\n/* globals $t, s */\n$t('on', 'mbt_curtain_closeClick', function() {\n var actionContextData = {\n 'news.linkmoduledetail': 'Close',\n 'news.linkmoduletype': 'Homepage Curtain'\n };\n s.contextData = s.extendArray(s.contextData, actionContextData);\n\n //track action\n s.tl(true, 'o', 'curtain close click');\n\n //cleanup values after action\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n});\n$t('on', 'mbt_curtain_scrollPast', function() {\n var actionContextData = {\n 'news.belowcurtain': 'true',\n };\n s.contextData = s.extendArray(s.contextData, actionContextData);\n\n //track action\n s.tl(true, 'o', 'scrolled past curtain');\n\n //cleanup values after action\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n});\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL218d59b442bd4d519da0fa42015ae3a9",name:"50 - BizDev - Skimlink [d:nbcnews.com, d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["nbcnews.com","today.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"\n(function () {\n /*global $t */\n var loadedScripts = {};\n var loadScript = function (address, id) {\n if (address && !loadedScripts[address]) {\n var t = document.createElement('script'); t.async = !0;\n t.src = address;\n if (id) {\n t.id = id;\n }\n var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(t, s);\n loadedScripts[address] = true;\n }\n };\n\n var skimlinkAddresses = {\n 'nbcnews.com': 'https://s.skimresources.com/js/96128X1573856.skimlinks.js',\n 'today.com': 'https://s.skimresources.com/js/96128X1550925.skimlinks.js'\n };\n\n $t('on', 'dtm_pageView', function (e, data) {\n var trackView = data.trackView !== false; //this will default all to true if not false\n var pageIndex = $t(e.type + '.index', 0);\n var topLevelDomain = document.location.hostname.match(/[^./]+\\.[^./]+$/)[0];\n var pageType = $t('jsonLd.Dataset.' + pageIndex + '.pageType', '').toLowerCase();\n\n var isCoverOrFront = pageType === 'front' || pageType === 'sectionfront';\n \n //Tracks only ECommerce.\n if (trackView && (isCoverOrFront)) {\n loadScript(skimlinkAddresses[topLevelDomain]);\n }\n });\n})();\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL26667dd721b04a38a6382e9b98d281f2",name:"DR - Action - rmn_rundown_* [d:msnbc.com, d:nbcnews.com, d:telemundo.com, d:today.com]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RCf845abe17eca4a688dd53f4939801fe6-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL26de48bf755b4ce1b723f8262874558d",name:"Action - mbt_navbar_*",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","today.com","telemundo.com","nbcnews.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"\n/* globals $t, s */\n(function() {\n $t('on', 'mbt_navbar_topicClick', function(e) {\n var actionContextData = {\n 'news.linkmoduledetail': 'Hamburger Link',\n 'news.linkmoduletype': $t(e.type + '.topic', s.noValue)\n };\n s.contextData = s.extendArray(s.contextData, actionContextData);\n\n //track action\n s.tl(true, 'o', 'hamburger link click');\n\n //cleanup values after action\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n });\n $t('on', 'mbt_navbar_hamburgerClick', function(e, data) {\n if (data.isOpen) {\n var actionContextData = {\n 'news.linkmoduledetail': 'Hamburger',\n 'news.linkmoduletype': 'Hamburger Expand'\n };\n s.contextData = s.extendArray(s.contextData, actionContextData);\n\n //track action\n s.tl(true, 'o', 'hamburger expand');\n\n //cleanup values after action\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n }\n });\n $t('on', 'mbt_navbar_follow', function(e) {\n var actionContextData = {\n 'news.linkmoduledetail': 'Hamburger',\n 'news.linkmoduletype': 'Hamburger Follow',\n 'news.socialplatform': $t(e.type + '.platform', s.noValue)\n };\n s.contextData = s.extendArray(s.contextData, actionContextData);\n\n //track action\n s.tl(true, 'o', 'hamburger follow');\n\n //cleanup values after action\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n });\n\n $t('on', 'mbt_navbar_shareClick', function(e, data) {\n if (data.isOpen) {\n var actionContextData = {\n 'news.linkmoduledetail': 'Article Share Bar',\n 'news.linkmoduletype': 'Expand',\n };\n s.contextData = s.extendArray(s.contextData, actionContextData);\n\n //track action\n s.tl(true, 'o', 'article share expand');\n\n //cleanup values after action\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n }\n });\n})();\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL29a552e5c60a4af38c9e63ab315eb6d7",name:"50 - Floodlight Tag [msnbc.com, nbcnews.com, today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"\n/*globals $t */\n(function () {\n var topLevelDomain = document.location.hostname.match(/[^./]+\\.[^./]+$/)[0];\n var sites = {\n 'today.com': {\n 'view': 'DC-8168974/today0/today0+standard',\n 'play': 'DC-8168974/today0/today00+standard'\n },\n 'nbcnews.com': {\n 'view': 'DC-8168974/nbcvi0/nbcne0+standard',\n 'play': 'DC-8168974/nbcvi0/nbcne00+standard'\n },\n 'msnbc.com': {\n 'view': 'DC-8168974/msnbc0/msnbc0+standard',\n 'play': 'DC-8168974/msnbc0/msnbc00+standard'\n }\n };\n var siteEvents = sites[topLevelDomain] || { 'view': '', 'play': '' };\n\n // add global script\n var loadScript = function (script) {\n var s = document.createElement('script'),\n el = document.getElementsByTagName('script')[0];\n s.async = true;\n s.src = (document.location.protocol == 'https:' ? 'https://' : 'http://') + script;\n el.parentNode.insertBefore(s, el);\n };\n loadScript('www.googletagmanager.com/gtag/js?id=DC-8168974');\n\n window.dataLayer = window.dataLayer || []; //that name is to generic to have global scope\n function gtag() { window.dataLayer.push(arguments); }\n\n gtag('js', new Date());\n gtag('config', 'DC-8168974');\n\n var customEvent = function (sendTo) {\n gtag('event', 'conversion', {\n 'allow_custom_scripts': true,\n 'send_to': sendTo\n });\n };\n\n //on pageload\n customEvent(siteEvents.view);\n\n //on video start\n $t('on', 'ndp_videoEvent', function (e, data) {\n if(data.eventType === 'NDP_PlaybackEvent_START') {\n customEvent(siteEvents.play);\n }\n });\n})();\n\n",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"(function () {\n var trackPath = /www.nbcnews.com\\/now$/;\n var videoStarted = false;\n\n //local gtag\n window.dataLayer = window.dataLayer || []; //that name is to generic to have global scope\n function gtag() { window.dataLayer.push(arguments); }\n\n gtag('js', new Date());\n gtag('config', 'DC-8168974');\n\n if (document.location.href.split('?')[0].search(trackPath) >= 1) {\n $t('on', 'dtm_pageView', function (e, data) {\n //Event snippet for NBC NEWS NOW - Landing Page on https://www.nbcnews.com/now: Please do not remove.\n // Creation date: 11/12/2020\n typeof gtag != 'undefined' && gtag('event', 'conversion', {\n 'allow_custom_scripts': true,\n 'send_to': 'DC-8168974/nbcno0/nbcne0+standard' //this one has 0 vs 00\n });\n });\n\n $t('on', 'uni_videoEvent', function (e, data) {\n if (data.eventType == 'PLAY' && !videoStarted) {\n //Event snippet for NBC NEWS NOW Video - Start on https://www.nbcnews.com/now: Please do not remove.\n //Creation date: 11/12/2020\n typeof gtag != 'undefined' && gtag('event', 'conversion', {\n 'allow_custom_scripts': true,\n 'send_to': 'DC-8168974/nbcno0/nbcne00+standard' //this one has 00 vs 0\n });\n videoStarted = true;\n }\n })\n }\n})();\n\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL29efabb6e6a445f7ad1183b13bfe21c1",name:"50 - Action - InlineNewsletterModule_Reached [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"\n/* globals $t, s */\n$t('on', 'InlineNewsletterModule_Reached', function() {\n var actionContextData = {\n 'news.pageevents': 'Inline Newsletter Shown'\n };\n s.contextData = s.extendArray(s.contextData, actionContextData);\n\n //track action\n s.tl(true, 'o', 'Inline Newsletter Shown');\n\n //cleanup values after action\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n});\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL2b7785b0acb74e909488bd62700106d0",name:"50 - Floodlight Tag - Library Load [telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!1,source:"/*globals $t */\n(function () {\n // add global script\n var loadScript = function (script) {\n var s = document.createElement('script'),\n el = document.getElementsByTagName('script')[0];\n s.async = true;\n s.src = (document.location.protocol == 'https:' ? 'https://' : 'http://') + script;\n el.parentNode.insertBefore(s, el);\n };\n loadScript('www.googletagmanager.com/gtag/js?id=DC-8374335');\n\n window.dataLayer = window.dataLayer || []; //that name is to generic to have global scope\n function gtag() { window.dataLayer.push(arguments); }\n\n gtag('js', new Date());\n gtag('config', 'DC-8374335');\n\n})();\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL2f6297d535af4fc0a0167742e76cac99",name:"50 - Quora Pixel [bizdev, d:msnbc.com, d:nbcnew.com, d:telemundo.com, d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3},{modulePath:"core/src/lib/conditions/subdomain.js",settings:{subdomains:[{value:"staging",valueIsRegex:!0}]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,
source:"\nif($t && $t('jsonLd.Dataset.0.pageType','').toLowerCase() === 'article'){ //only on article pages (doesnt account for SPA and transporter)\n !function(q,e,v,n,t,s){if(q.qp) return; n=q.qp=function()\n {n.qp?n.qp.apply(n,arguments):n.queue.push(arguments);}; n.queue=[];t=document.createElement(e);t.async=!0;t.src=v; s=document.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s);}(window, 'script', 'https://a.quora.com/qevents.js');\n qp('init', '84010779d768495588826e8170d4c66e');\n qp('track', 'ViewContent');\n}\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL32ae5ed324b04cce83f87dbfcb9bfb6b",name:"DR - Attentive tag at today.com allday and shop today-all-day",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com"]},timeout:2e3},{modulePath:"core/src/lib/conditions/path.js",settings:{paths:[{value:"/allday"},{value:"/shop/today-all-day"}]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RC1855ceba5f3649318363a75198c4260b-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL333b80d8944b4f2485560f553842c037",name:"DR - UniAudio - player adapter - AIX Player [d:telemundo.com, d:today.com, d:nbcnews.com, d:msnbc.com]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["telemundo.com","today.com","nbcnews.com","msnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RCfb2ffadfe0b7483682335b9d46f5e4ed-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL33a7b77310374b7eb99758d78a9759c4",name:"50 - Fix elections styling (super Tuesday)",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["telemundo.com"]},timeout:2e3},{modulePath:"core/src/lib/conditions/path.js",settings:{paths:[{value:"/.*rcna141833",valueIsRegex:!0}]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!1,source:"(function(){\n document.body.insertAdjacentHTML('beforeend', '');\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL386dec90aa904be69ebf0d2c92714933",name:"DR - Promotional Pixels - the trade desk universal [d:msnbc.com]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com"]},timeout:2e3},{modulePath:"core/src/lib/conditions/path.js",settings:{paths:[{value:"/msnbc-podcast/why-is-this-happening-chris-hayes",valueIsRegex:!0}]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RC1c522c5e0e24428e99174780d5178e27-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL39296abb7c6a471f8e473e991348930d",name:"50 - Action - dtm_click_track - Profile Dropdown Menu [d:nbcnews.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["nbcnews.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"(function() {\n\n // Handling clicks on the Identity icon\n $t('on','dtm_click_track',function(e, data){\n var linkDetail = false\n if(data.closestDivClasses == \"login js-login-wrapper\"){\n linkDetail = 'profile button'\n }\n\n // White-listing menu buttons\n var validButtons = new Set([\"MY NEWS\",\"MANAGE PROFILE\",\"EMAIL PREFERENCES\", \"SIGN OUT\"]);\n if (data.classes == \"login__option\" && validButtons.has(data.innerText)) {\n linkDetail = data.innerText + ' button'\n }\n\n if (linkDetail) {\n var actionContextData = {\n 'news.linkmoduledetail': linkDetail,\n 'news.linkmoduletype': 'profile menu click'\n };\n\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', 'Profile Menu Click');\n \n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n }\n })\n\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL39ee4e9f89f1485a9101ba713f94c8d5",name:"50 - Iterate Tag [BizDev, d:today.com, d:msnbc.com, d:nbcnews.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com","nbcnews.com","msnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"(() => {\n window.iterateSettings = {\n apiKey: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb21wYW55X2lkIjoiNjA5YzE5ZmFmOWUyYzgwMDAxYzU2NTFjIiwiaWF0IjoxNjIwODQzMDAyfQ.fCD6aayBwtAX5OflTYjnv67MBNUPfu_6ZzzDy9BdyZA'\n };\n\n /* eslint-disable */\n (function(i,t,e,r,a){if(t.getElementById(r)){return}\n i.IterateObjectName=a;var z=function(){z.c(arguments)};z.q=[];\n z.c=function(args){z.q.push(args)};i[a]=z; function l() {var js,fjs=t.getElementsByTagName(e)[0];js=t.createElement(e);js.id=r;js.async=1;js.src=\"https://platform.iteratehq.com/loader.js\";fjs.parentNode.insertBefore(js,fjs)};\n if(t.readyState===\"complete\") {l();} else if(i.attachEvent) {i.attachEvent('onload', l);} else{i.addEventListener('load', l, false);}\n }(window, document,'script','iterate-js','Iterate'));\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL3a3a03824bf749daa22d7d797ee60055",name:"DR - UniAudio - core [d:telemundo.com, d:today.com, d:nbcnews.com, d:msnbc.com]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["telemundo.com","today.com","nbcnews.com","msnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RCea6783b9270d41ae8c87224dcbbd60ef-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL3d2ada4851ee487b9739f1ded69de6fe",name:"dr-action-libra-events",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RCd92397a341d54012a7ae599572287d85-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL3e1a07438b964732986b9362bfba429a",name:"60 - univideo - product adapter (chartbeat) [d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:60}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals $t */\n(function () {\n var uniEvent = window.uniVideo && window.uniVideo.event || {};\n\n var timeElapsed = function (timestamp) {\n if (timestamp === undefined) {\n return 0;\n }\n return new Date().getTime() - timestamp;\n };\n\n var logEvent = (function () {\n var logGroup = 'uni_chartbeat';\n var logger = function (event, data) {\n if (window.BI && window.BI.console) {\n window.BI.console.log(event, data, logGroup);\n }\n };\n logger.logGroup = logGroup;\n return logger;\n })();\n\n function UniVideoStrategy(player) {\n this._player = player.iframeObj;\n this._videoData = {};\n this._adData = {};\n this._playerType = 'Playmaker Player';\n this._videoTitle = '';\n this._videoPath = '';\n this._videoThumbnail = '';\n this._videoDuration = 0; // miliseconds\n this._videoReady = false;\n this._videoPlayed = false;\n this._viewStartTime = 0;\n this._viewPlayTime = 0;\n this._adPlayTime = 0;\n this._stateInfo = {\n playheadPosition: 0,\n playState: 's1', // play, pause, complete, stop\n inAd: false,\n };\n\n this.ContentType = {\n AD: 'ad',\n CONTENT: 'ct',\n };\n\n this.AdPosition = {\n PREROLL: 'a1',\n MIDROLL: 'a2',\n POSTROLL: 'a3',\n OVERLAY: 'a4',\n SPECIAL: 'a5',\n };\n\n this.VideoState = {\n UNPLAYED: 's1',\n PLAYED: 's2',\n STOPPED: 's3',\n COMPLETED: 's4',\n };\n\n var _that = this;\n\n $t('on', 'uni_videoEvent', function (e, data) {\n // console.log('uni_videoEvent from univideo chartbeat', e, data); // this works as expected\n if (_that._viewStartTime === 0) {\n _that._viewStartTime = new Date().getTime();\n }\n _that.processEvent.call(_that, data);\n });\n }\n\n UniVideoStrategy.prototype.processEvent = function (data) {\n // if (data.eventType !== 'PROGRESS') {\n // }\n\n // populate scope data\n var videoData = data && data.videoData || {};\n // var videoState = data && data.videoState || {};\n\n // if its a progress event, just update time and return\n if (data.eventType === 'PROGRESS') {\n this._stateInfo.playheadPosition = videoData.playheadPosition;\n this._videoPath = videoData.canonicalUrl;\n return;\n }\n\n videoData.canonicalUrl = $t('jsonLd.WebSite.0.url', window.location.href.split('?')[0]);\n var ogImage = document.querySelector('meta[property=\"og:image\"]');\n videoData.thumbnail = $t('jsonLd.WebSite.0.image.url', ogImage && ogImage.content || '');\n\n logEvent(data.eventType, { this: this, data: data });\n\n switch (data.eventType) {\n case 'VIDEO_LOADED':\n // set all video data here\n this._videoReady = true;\n this._videoTitle = videoData.title;\n this._videoPath = videoData.canonicalUrl;\n this._videoThumbnail = videoData.thumbnail;\n this._videoDuration = (typeof videoData.duration === 'number') ? videoData.duration * 1000 : 0;\n // console.log('THIS VIDEO LOADED', this);\n break;\n\n case 'PLAY':\n case 'SEGMENT_START':\n if (this._viewPlayTime === 0) {\n this._viewPlayTime = new Date().getTime();\n }\n if (!this._videoPlayed) {\n // if first asset after load\n this._videoPlayed = true;\n }\n this._stateInfo.playState = 'play';\n break;\n\n case 'COMPLETE':\n case 'SEGMENT_END':\n this._stateInfo.playState = 'complete';\n break;\n case uniEvent.PAUSE:\n case uniEvent.STOP:\n case 'AD_COMPLETE':\n this._stateInfo.playState = 'stop';\n break;\n case 'AD_PLAY':\n if (this._adPlayTime === 0) {\n // TODO linear ads arent quite right\n this._adPlayTime = new Date().getTime();\n }\n\n if (!this._videoPlayed) {\n // if first asset after load\n this._videoPlayed = true;\n }\n this._stateInfo.playState = 'play';\n break;\n\n default:\n break;\n }\n };\n /**\n * Indicates if the video strategy is ready for pinging.\n * Typically this is called when all path and title metadata\n * is available\n * Note: Pings should only be sent after this reads true.\n * @return {boolean} The ready state of the strategy.\n */\n UniVideoStrategy.prototype.isReady = function () {\n // As an example, this could just be a call to a similar\n // method in your _player object\n return this._videoReady;\n };\n\n /**\n * Gets the human readable video title.\n * This is returned in the i key of the ping.\n * @return {string} The video title.\n */\n UniVideoStrategy.prototype.getTitle = function () {\n return this._videoTitle;\n };\n\n /**\n * Gets the video path.\n * This is returned in the p key of the ping.\n * Note: this should be the playable video path if available.\n * @return {string} The video path.\n */\n UniVideoStrategy.prototype.getVideoPath = function () {\n return this._videoPath;\n };\n\n UniVideoStrategy.prototype.getContentType = function () {\n var contentType = this.ContentType.CONTENT;\n if (this._stateInfo.inAd) {\n contentType = this.ContentType.AD;\n }\n return contentType;\n };\n\n UniVideoStrategy.prototype.getAdPosition = function () {\n // NDP is always pre-roll\n // TODO some condition to know midroll vs preroll\n\n return this.AdPosition.MIDROLL;\n };\n\n UniVideoStrategy.prototype.getTotalDuration = function () {\n // in The total duration time in milliseconds.\n return this._videoDuration;\n };\n\n UniVideoStrategy.prototype.getState = function () {\n var currentState = this.VideoState.UNPLAYED;\n if (this._videoPlayed === true) {\n switch (this._stateInfo.playState) {\n case 'play':\n currentState = this.VideoState.PLAYED;\n break;\n case 'stop':\n case 'pause':\n currentState = this.VideoState.STOPPED;\n break;\n case 'complete':\n currentState = this.VideoState.COMPLETED;\n break;\n }\n }\n return currentState;\n };\n\n UniVideoStrategy.prototype.getCurrentPlayTime = function () {\n // The current play time in milliseconds\n return this._stateInfo.playheadPosition;\n };\n\n UniVideoStrategy.prototype.getBitrate = function () {\n // The current bitrate in kbps\n };\n\n UniVideoStrategy.prototype.getThumbnailPath = function () {\n // The [absolute] path to the thumbnail.\n return this._videoThumbnail;\n };\n\n UniVideoStrategy.prototype.getPlayerType = function () {\n return this._playerType;\n };\n\n UniVideoStrategy.prototype.getViewStartTime = function () {\n // The time since viewing started in milliseconds.\n return timeElapsed(this._viewStartTime);\n };\n\n /**\n * Gets the time since start of viewing for users in a play state -- regardless of current state.\n * This is returned in the _vvsp key of the ping.\n * @return {number} The time since viewing started in milliseconds.\n */\n UniVideoStrategy.prototype.getViewPlayTime = function () {\n return timeElapsed(this._viewPlayTime);\n };\n /**\n * Gets the time since play start for users who saw a preroll ad -- regardless of current state.\n * The timer continues after the ad completes as well.\n * This is returned in the _vasp key of the ping.\n * @return {number} The time since viewing started in milliseconds.\n */\n UniVideoStrategy.prototype.getViewAdPlayTime = function () {\n return timeElapsed(this._adPlayTime);\n };\n\n /**\n * Verifies that the given player belongs to this strategy. Used for a\n * greedy search of the matching strategy for a given element or object.\n * @param {Object} player A pointer to the player being tracked.\n * @return {boolean} If the strategy can handle this type of object.\n */\n UniVideoStrategy.verify = function (player) {\n var isValidPlayer = !!player.iframeObj; // TODO this specific to playmaker\n // console.log('ISVALIDPLAYER ISVALIDPLAYER ISVALIDPLAYER ISVALIDPLAYER',isValidPlayer);\n return isValidPlayer;\n };\n\n // console.log('CBV Strategies', window['_cbv_strategies']);\n\n window['_cbv_strategies'] = window['_cbv_strategies'] || [];\n window['_cbv_strategies'].push(UniVideoStrategy);\n // TODO This is playmaker specific also, needs to be general in the future for univideo\n var playerPushed = false;\n $t('on', 'playMaker_init', function (e, data) {\n if (!playerPushed) {\n var _cbv = window._cbv || (window._cbv = []);\n _cbv.push(data);\n playerPushed = true;\n }\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL3eeb13c858124ea6989e343d33f62ab3",name:"50 - BI Data - $t logging [d:nbcnews.com, d:msnbc.com, d:telemundo.com, d:today]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"// $t debug\n(function () {\n if (window.$t && window.BI && window.BI.console) {\n window.$t('bindTrack', function (e, trackingEvent) {\n window.BI.console.log(trackingEvent.eventType, trackingEvent.eventData, '$t');\n });\n }\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL4002383f734048e49f8d3aa2a9c2187b",name:"50 - Action - elections_* [d:nbcnews.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["nbcnews.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"(function () {\n /* globals $t, s */\n function track(situation, actionContextData) {\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', situation);\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n }\n\n $t('on', 'elections_expand_menu', function (e, data) {\n track('election menu expands of candidates and counties', {\n 'news.linkmoduledetail': data.sections,\n 'news.linkmoduletype': 'candidate/county menu expand',\n });\n });\n\n $t('on', 'elections_anchor_links', function (e, data) {\n track('elections anchor link', {\n 'news.linkmoduledetail': data.title,\n 'news.linkmoduletype': 'anchor link click',\n });\n });\n\n $t('on', 'elections_breakDownVotes_click', function (e, data) {\n track('election vote break down clicks', {\n 'news.linkmoduledetail': data.buttonName,\n 'news.linkmoduletype': 'button pressed',\n });\n });\n\n $t('on', 'elections_map_toggle', function (e, data) {\n track('election map toggle', {\n 'news.linkmoduledetail': data.race,\n 'news.linkmoduletype': data.section,\n });\n });\n\n $t('on', 'elections_dropdown_filter', function (e, data) {\n track('election dropdown filter', {\n 'news.linkmoduledetail': data.filter,\n 'news.linkmoduletype': data.location,\n });\n });\n\n $t('on', 'elections_table_click', function (e, data) {\n track('election table click', {\n 'news.linkmoduledetail': data.action,\n 'news.linkmoduletype': data.table,\n });\n });\n\n $t('on', 'elections_districtresult_click', function (e, data) {\n track('election district result click', {\n 'news.linkmoduledetail': data.action,\n 'news.linkmoduletype': 'search for congressional district',\n });\n });\n\n $t('on', 'elections_recirc_dropdown', function (e, data) {\n track('election navigation dropdown click', {\n 'news.linkmoduledetail': data.action,\n 'news.linkmoduletype': data.title,\n });\n });\n\n $t('on', 'elections_results_mapview', function (e, data) {\n track('election results mapview', {\n 'news.linkmoduledetail': data.action,\n 'news.linkmoduletype': data.title,\n });\n });\n\n $t('on', 'elections_expand_counties', function () {\n track('expand elections counties', {\n 'news.linkmoduledetail': 'Expand',\n 'news.linkmoduletype': 'Elections Counties Button',\n });\n });\n\n $t('on', ['elections_expand_polls','eleections_expand_polls'], function () {\n track('expand elections polls', {\n 'news.linkmoduledetail': 'Expand',\n 'news.linkmoduletype': 'Elections Polls Button',\n });\n });\n\n $t('on', 'elections_hover_map', function (e, data) {\n track('hover election map', {\n 'news.linkmoduledetail': data.duration,\n 'news.linkmoduletype': `Hover Election Map:${data.mapType?.trim() ?? 'regular'}:${data.raceName?.trim() ?? 'unknown'}`\n });\n });\n\n let isSubmitEventTracked = false;\n $t('on', 'elections_search_submit', function (e, data) {\n if (!isSubmitEventTracked) {\n track('elections search input', {\n 'news.linkmoduledetail': data.action,\n 'news.linkmoduletype': 'Elections Search Input',\n });\n isSubmitEventTracked = true;\n }\n });\n\n $t('on', 'elections_search_selected', function (e, data) {\n track('elections search selected', {\n 'news.linkmoduledetail': data.action,\n 'news.linkmoduletype': `data selected with keyword: ${data.keyword}`,\n });\n });\n\n function trackMarqueesLoaded(data) {\n if ((data?.marqueeTypes ?? []).length) {\n track('marquees loaded', {\n 'news.linkmoduledetail': (data?.marqueeTypes ?? []).join(','),\n });\n }\n }\n\n trackMarqueesLoaded($t('marquees_loaded', null));\n\n $t('on', 'marquees_loaded', function (e, data) {\n trackMarqueesLoaded(data);\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL405ecd3a1b7a4a5cbea887fecccdc637",name:"50 - fix - dtm_video_tmp_event [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com, regex_path]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3},{modulePath:"core/src/lib/conditions/path.js",settings:{paths:[{value:"^/now",valueIsRegex:!0}]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"(function () {\n /* globals $t */\n $t('register', 'dtm_video_tmp_event');\n window.onbeforeunload = videoStopEvent;\n\n function videoStopEvent() {\n if ($t('uni_videoEvent.videoState.playState', 'none') === 'play') {\n $t('track', 'dtm_video_tmp_event', { eventName: 'Linear Stream Stop', eventType: 'Navigation', eventData: {} });\n }\n }\n})();\n\n(function () {\n var currentVideoGuid = '';\n\n $t('on', 'uni_videoEvent', function (e, data) {\n var videoData = data.videoData || {};\n var noValue = 'not available';\n\n if (data.eventType.indexOf('PROGRESS') >= 0) {\n //skip all progress events\n return;\n }\n\n var eventName = '';\n\n var siteBrand = (function () {\n //brand is only today, and everything else is nbcnews\n if ($t('jsonLd.Dataset.0.vertical') === 'today') {\n return 'Today';\n } else if ($t('jsonLd.Dataset.0.vertical') === 'msnbc') {\n return 'MSNBC';\n } else {\n return 'NBC News';\n }\n })();\n\n var metadata = {\n 'video mpx id': videoData.mpxId || noValue,\n 'video guid': videoData.guid || noValue,\n 'video title': videoData.title || noValue,\n 'video brand domain': siteBrand, //what site user is on\n 'video network': videoData.newsNetwork,\n 'video program': videoData.source,\n 'video content source': videoData.source,\n 'video air date': videoData.dateBroadcast || noValue, //need format\n 'video asset status': 'Unrestricted',\n 'video screen mode': 'Normal',\n 'video length': videoData.duration * 1000 || noValue, //in miliseconds\n 'video clip category': videoData.videoType || noValue, //(Linear, VOD Clip, VOD Episode)\n 'video player name': videoData.playbackAdapter,\n 'video initiation': videoData.playInitiate,\n 'video playlist name': videoData.playListLabel || noValue,\n 'video playlist id': videoData.playListId || noValue,\n 'video content type': 'Video',\n 'video publish date': videoData.datePublished || noValue, //need format\n 'video index start': videoData.playheadPosition || noValue\n };\n\n switch (data.eventType) {\n case 'PLAY':\n if (videoData.guid && (currentVideoGuid != videoData.guid)) {\n if (videoData.streamType === 'linear') {\n eventName = 'Linear Stream Start';\n } else {\n eventName = 'VOD Clip Start';\n }\n currentVideoGuid = videoData.guid;\n }\n else return;\n break;\n case 'COMPLETE':\n if (videoData.streamType === 'linear') {\n eventName = 'Linear Stream Stop';\n } else {\n eventName = 'VOD Clip Complete';\n }\n break;\n case 'STOP':\n if (videoData.streamType === 'linear') {\n eventName = 'Linear Stream Stop';\n }\n }\n\n if (eventName) {\n metadata.eventName = eventName;\n $t('track', 'dtm_video_tmp_event', metadata);\n }\n });\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL40a02aef301b4025a2fdb8631fe5ebf9",name:"50 - Action - mbt_gallery_scroll [d:nbcnews.com, d:msnbc.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["nbcnews.com","msnbc.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"\n/* globals $t, s */\n(function() {\n var inSlideshow = false;\n var prevSlide = -1;\n $t('on', 'mbt_gallery_scroll', function(e) {\n var adSlide = $t(e.type + '.adSlide');\n if (!adSlide) {\n prevSlide = $t(e.type + '.prevSlideNumber') != -1 ? $t(e.type + '.prevSlideNumber') : prevSlide;\n var curSlide = $t(e.type + '.slideNumber', 0);\n var action = '';\n\n var totalSlides = $t(e.type + '.totalSlides', 0);\n s.events = '';\n if (inSlideshow === false) {\n //start\n action = 'Start,';\n inSlideshow = true;\n }\n if (inSlideshow !== 'done' & curSlide === totalSlides) {\n action = 'Complete,';\n inSlideshow = 'done';\n }\n if (prevSlide < curSlide) {\n //scroll down\n action += 'Swipe Down';\n } else if (prevSlide > curSlide) {\n //scroll up\n action += 'Swipe Up';\n }\n\n var actionContextData = {\n 'news.slideshowaction': action, //\"Start\", \"Swipe Up\", \"Swipe Down\", \"Swipe Right\", \"Swipe Left\", \"Complete\"\n 'news.slideshowname': $t('jsonLd.imageGallery.0.headline', s.noValue),\n 'news.slideshownumber': curSlide\n };\n s.contextData = s.extendArray(s.contextData, actionContextData);\n\n //track action\n s.tl(true, 'o', 'slideshow action');\n\n //cleanup values after action\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n }\n });\n})();\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL41a8b6535400436f83bba3ec3bf442cb",name:"60 - univideo - player adapter (cvsdk) [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:60}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"(function(){\n /* Temp setup to pass iframe events to parent for sigma */\n const pollIframeStub = (function(){\n let prevIndex = 0;\n let interval = {}; //eslint-disable-line\n return function(iframeSelector){\n interval = setInterval(()=>{\n const iframeRef = document.querySelector(iframeSelector);\n if(iframeRef && iframeRef.contentWindow.$t && iframeRef.contentWindow.parent.window.$t){\n const newEventList = iframeRef.contentWindow.$t('getSaves');\n const newIndex = newEventList.length - 1;\n if(newIndex != prevIndex){\n const executeEventList = newEventList.slice(prevIndex);\n executeEventList.forEach((event)=>{\n iframeRef.contentWindow.parent.window.$t(event[0],event[1],event[2]);\n });\n prevIndex = newIndex;\n }\n }\n },500);\n };\n })();\n\n pollIframeStub('#core-video iframe');\n\n})();",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,
source:"/* global uniVideo */\n(function () {\n const topLevelDomain = (function () {\n var validDomains = ['nbcnews.com', 'today.com', 'msnbc.com', 'telemundo.com'];\n var isAmp = location.hash.indexOf('amp=1') != -1;\n var ampDomainOverride = (location.hash.split('domain=')[1] || '').split('&')[0];\n var result = (isAmp && ampDomainOverride) || document.location.hostname.match(/[^./]+\\.[^./]+$/)[0];\n return validDomains.indexOf(result) != -1 ? result : 'nbcnews.com';\n })();\n\n /* globals $t */\n var logEvent = (function () {\n var logGroup = 'uni_cvsdk';\n var logger = function (event, data) {\n if (window.BI && window.BI.console) {\n window.BI.console.log(event, data, logGroup);\n }\n };\n logger.logGroup = logGroup;\n return logger;\n })();\n\n $t('register', 'uni_cvsdk_error');\n\n const uniEvent = (window.uniVideo && window.uniVideo.event) || {};\n\n let appName = ({\n 'msnbc.com': 'MSNBC',\n 'nbcnews.com': 'NBC News',\n 'telemundo.com': 'Telemundo',\n 'today.com': 'Today',\n })[topLevelDomain] ?? 'ramen';\n\n // Mapping hostname to video guid to safeguard against cases\n // where the player doesn't provide a meaningful value\n function preventBadGUIDs(_metaData) {\n const hostname = window.location.hostname;\n const isBadGUID = () => [undefined, 'not available'].includes(_metaData['guid']);\n\n if (isBadGUID()) {\n if (hostname.includes('msnbc.com')) {\n _metaData['guid'] = '5608086763860174117';\n }\n else if (hostname.includes('nbcnews.com')) {\n _metaData['guid'] = '5676009166762707117';\n }\n else if (hostname.includes('today.com')) {\n _metaData['guid'] = '7989219137174638117';\n }\n }\n }\n\n const cvsdkUniBind = (eventName, data, _metaData, uniTrack) => {\n // Logging events, but excluding \"progress\" events\n if (!['onPositionChanged', 'onAdPositionChanged', 'onPlaybackTimelineUpdated'].includes(eventName)) {\n logEvent(eventName, { eventData: data, videoData: uniTrack.videoData(), videoState: uniTrack.videoState() });\n }\n\n if (!_metaData.didInit) {\n uniTrack(uniEvent.INIT);\n _metaData.didInit = true;\n }\n\n switch (eventName) {\n case 'onStateChanged:Rebuffering':\n case 'bufferChange':\n case 'buffer':\n uniTrack.videoState({ playState: 'buffer' });\n uniTrack(uniEvent.BUFFERING_START);\n break;\n case 'onPlaybackTimelineUpdated':\n case 'onPositionChanged':\n // Supporting playhead changes in CVSDK8 and below (data = 1234567)\n // Supporting playhead changes in CVSDK9+ (data = { position: 1234567})\n uniTrack.videoData({ playheadPosition: ((data?.position ?? data) * 1000) });\n uniTrack(uniEvent.PROGRESS);\n break;\n case 'onAdPositionChanged':\n uniTrack(uniEvent.PROGRESS);\n break;\n case 'unmapped': // no init event setup\n uniTrack(uniEvent.INIT);\n break;\n case 'onPlayoutDataReceived':\n var tmpCount = uniTrack.videoData().videoCount || 0;\n var assetMetadata = data.custom.nativeReporting.assetMetadata;\n var isNewsLive = data['type'] === 'Live' && assetMetadata.channelName.includes('news');\n\n _metaData['title'] = assetMetadata.channelName;\n _metaData['guid'] = data.advertising.contentId;\n _metaData['source'] = assetMetadata.channelId;\n _metaData.custom['videosubcat1'] = isNewsLive ? 'News' : 'News and Information';\n\n _metaData.custom['appName'] = appName;\n _metaData.custom['appVersion'] = $t('jsonLd.Dataset.0.appVersion', undefined);\n _metaData.custom['videoDomain'] = topLevelDomain;\n\n // Matching metadata from Playmaker -> UniVideo\n if (_metaData['source'] === 'Today') {\n _metaData['source'] = 'TODAY';\n _metaData['title'] = 'TODAY';\n _metaData['newsNetwork'] = 'TODAY';\n }\n\n // Matching metadata from Playmaker -> UniVideo\n if (_metaData['source'] === 'NBC News Now') {\n _metaData['title'] = 'NBC News';\n _metaData['newsNetwork'] = 'NBC News Now';\n }\n\n preventBadGUIDs(_metaData);\n\n var videoData = {\n datePublished: '', // Need to get this data\n duration: data.type === 'Live' ? 1800 : null,\n guid: _metaData.guid || 'not available', // need CVSDK version\n newsNetwork: _metaData.source || 'not available', // need CVSDK version\n playbackAdapter: 'cvsdk', // maybe?\n playInitiate: 'Auto', // (Continuous,Manual,Auto)\n sentiment: 'live', // hard coded\n source: _metaData.source || 'not available', // maybe?, NBC News //need CVSDK version\n streamType: 'linear', // hardcoded for now\n title: _metaData.title || 'not available', // need CVSDK version\n videoCount: tmpCount + 1,\n videoType: data.type, // Prerecorded?\n };\n\n uniTrack.videoData({ ..._metaData, ...videoData });\n\n // update source value for \"news now\" show\n if (uniTrack.videoData().title === 'NBC News NOW') {\n uniTrack.videoData({ source: uniTrack.videoData().title });\n }\n\n uniTrack.videoState({\n isMuted: data.muted, // true is mute and false is unmute\n });\n\n if (!_metaData.didLoad) {\n uniTrack(uniEvent.VIDEO_LOADED);\n _metaData.didLoad = true;\n }\n\n break;\n case 'onStateChanged:Loaded':\n uniTrack(uniEvent.INIT);\n break;\n case 'onStateChanged:Playing':\n uniTrack(uniEvent.PLAY);\n uniTrack.videoState({ playState: 'play' });\n break;\n case 'onSeekStarted':\n uniTrack(uniEvent.SEEK_START);\n break;\n case 'onStateChanged:stop': // this is unknown, havent seen\n case 'onSessionEnded':\n uniTrack(uniEvent.STOP);\n uniTrack.videoState({ playState: 'stop' });\n break;\n case 'onStateChanged:Paused':\n if (uniTrack.videoState().playState === 'play') {\n uniTrack(uniEvent.PAUSE);\n uniTrack.videoState({ playState: 'pause' });\n }\n break;\n case 'FULLSCREEN': // this is not setup for cvsdk\n uniTrack(uniEvent.FULLSCREEN);\n uniTrack.videoState({ fullScreen: data.fullScreen });\n break;\n case 'onSeekEnded':\n uniTrack(uniEvent.SEEK_COMPLETE);\n uniTrack.videoState({ playState: 'stop' });\n break;\n case 'onAdStarted':\n uniTrack.videoState({\n playState: 'play',\n });\n\n uniTrack.videoData({\n adLength: data.expectedDuration * 1000, // milliseconds\n adName: data.name,\n adId: data.id,\n adPodName: data.adBreak.type,\n });\n\n uniTrack(uniEvent.AD_PLAY);\n /*\n id: \"41613_1\"\n name: \"NBC News linear site group Test - Desktop NBC News\"\n expectedDuration: 15.115\n */\n break;\n case 'onAdFinished':\n uniTrack(uniEvent.AD_COMPLETE);\n uniTrack.videoState({\n playState: 'stop',\n adPosition: uniTrack.videoState().adPosition + 1,\n });\n break;\n case 'onAdBreakStarted':\n uniTrack(uniEvent.AD_BREAK_START);\n uniTrack.videoState({\n inAd: true,\n });\n break;\n case 'onAdBreakFinished':\n uniTrack(uniEvent.AD_BREAK_COMPLETE);\n uniTrack.videoState({\n inAd: false,\n adPosition: 1,\n adBreakPosition: uniTrack.videoState().adBreakPosition + 1,\n });\n break;\n case 'scteBreakStart': // TODO not updates for cvsdk\n // nbcsplayer.PlayerMessageTypes.SCTE_BREAK_START\n uniTrack.videoData({\n assetId: data.assetId,\n });\n if (uniTrack.videoState().inSegment) {\n uniTrack.videoState({\n inSegment: false,\n });\n uniTrack(uniEvent.SEGMENT_END);\n }\n break;\n case 'scteBreakEnd': // TODO not updates for cvsdk\n // nbcsplayer.PlayerMessageTypes.SCTE_BREAK_END\n if (uniTrack.videoState().inSegment) {\n // if start before end, end and skip next end\n uniTrack(uniEvent.SEGMENT_END);\n }\n uniTrack.videoState({\n inSegment: true,\n segmentPosition: uniTrack.videoState().segmentPosition + 1,\n });\n uniTrack(uniEvent.SEGMENT_START);\n break;\n case 'scteProgramStart': // TODO not updates for cvsdk\n // nbcsplayer.PlayerMessageTypes.SCTE_PROGRAM_START\n\n if (uniTrack.videoState().inSegment) {\n // if start before end, end and skip next end\n uniTrack(uniEvent.SEGMENT_END);\n }\n // set new asset after end\n uniTrack.videoData({\n assetId: data.assetId,\n });\n uniTrack.videoState({\n inSegment: true,\n segmentPosition: 1,\n });\n uniTrack(uniEvent.SEGMENT_START);\n break;\n case 'scteProgramEnd': // TODO not updates for cvsdk\n // nbcsplayer.PlayerMessageTypes.SCTE_PROGRAM_END\n // skip program end now, since there is no assetId to know which start an end is to, and they are out of order\n if (uniTrack.videoState().inSegment && false) {\n uniTrack.videoState({\n inSegment: false,\n });\n uniTrack(uniEvent.SEGMENT_END);\n }\n break;\n case 'onError':\n // TODO Temp for error logging to mparticle\n $t('track', 'uni_cvsdk_error', data);\n break;\n case 'onMuteChanged':\n uniTrack.videoState({\n isMuted: data, // true is mute and false is unmute\n });\n break;\n default:\n break;\n }\n };\n\n const subscribeUniEventsToCvsdk = (playerController) => {\n const cvsdkEventList = [\n 'onAdBreakDataReceived',\n 'onAdBreakFinished',\n 'onAdBreakStarted',\n // 'onAdError',\n 'onAdFinished',\n 'onAdPositionChanged',\n 'onAdStarted',\n // 'onAudioTrackChanged',\n // 'onAutoPlayPolicyPreventedPlayback',\n // 'onAvailableAudioTracksChanged',\n // 'onAvailableSubtitlesTracksChanged',\n // 'onAvailableThumbnailVariantsChanged',\n // 'onBitrateChanged',\n // 'onDurationChanged',\n // 'onEncodedFrameRateChanged',\n 'onEndOfEventMarkerReceived',\n 'onError',\n 'onEventBoundary',\n 'onMuteChanged',\n 'onPauseAd',\n // 'onPinRequired',\n // 'onPinSuccess',\n // 'onPlaybackTimelineUpdated', //this might be useful later\n 'onPlayoutDataReceived',\n 'onPositionChanged', // Not present on CVSDK 9 or greater\n 'onPlaybackTimelineUpdated',\n // 'onRenderedFrameRateChanged',\n 'onSeekEnded',\n 'onSeekStarted',\n 'onSessionEnded',\n // 'onSessionRetryEnded',\n // 'onSessionRetryStarted',\n 'onStateChanged',\n // 'onSubtitleCuesChanged',\n // 'onSubtitlesTrackChanged',\n 'onVolumeChanged',\n ];\n /*\n onStateChanged:Loading\n */\n\n const getCurrentSession = function (playerController, callBack) {\n if (playerController.currentSession) {\n callBack(playerController.currentSession);\n }\n else {\n playerController.onSessionCreated(callBack);\n }\n };\n\n getCurrentSession(playerController, function (currentSession) {\n const uniTrack = uniVideo.buildUniTrack({ idPrefix: 'cvsdk' });\n logEvent('Session Available', currentSession);\n\n let _metaData = {\n didInit: false,\n didLoad: false,\n custom: {\n playerVersion: playerController?.videoPlatformIntegration?.config?.default?.addons?.common?.appVersion,\n },\n };\n\n cvsdkEventList.forEach((event) => {\n let modifiedEventName = event;\n let handler = currentSession[event];\n if (typeof handler !== 'function') return;\n\n handler((data) => {\n if (event === 'onStateChanged') {\n // onStateChanged has sub events\n modifiedEventName = event + ':' + data;\n }\n cvsdkUniBind(modifiedEventName, data, _metaData, uniTrack);\n });\n });\n });\n };\n\n $t('on', 'sigma_cvsdk_playerInit', function () {\n\n });\n\n $t('on', 'ltng_cvsdk_playerInit', function () {\n appName = 'lightning';\n });\n\n const platformInitEventList = [\n 'sigma_cvsdk_playerInit',\n 'ltng_cvsdk_playerInit',\n ];\n\n let currentVideoEl = null;\n platformInitEventList.forEach((eventName) => {\n if ($t(eventName)) {\n // if player inits before this code\n if ($t(`${eventName}.videoEl`) !== currentVideoEl) {\n const PlayerController = $t(`${eventName}.PlayerController`);\n subscribeUniEventsToCvsdk(PlayerController);\n currentVideoEl = $t(`${eventName}.videoEl`);\n }\n }\n else {\n $t('on', eventName, function () {\n // if it did not init, will catch init. If we need multiple players, this should be removed from \"else\"\n if ($t(`${eventName}.videoEl`) !== currentVideoEl) {\n const PlayerController = $t(`${eventName}.PlayerController`);\n subscribeUniEventsToCvsdk(PlayerController);\n currentVideoEl = $t(`${eventName}.videoEl`);\n }\n });\n }\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL48188709ab9b4f5199e4a5523ee6a4f7",name:"50 - Action - inlineVideoFullyInView [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"\n/* globals $t, s */\n$t('on', 'inlineVideoFullyInView', function() {\n var actionContextData = {\n 'news.pageevents': 'inlineVideoFullyInView'\n };\n s.contextData = s.extendArray(s.contextData, actionContextData);\n\n //track action\n s.tl(true, 'o', 'Inline video fully in view');\n\n //cleanup values after action\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n});\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL4a840628918341e3ac6a6a33f701ce06",name:"50 - Action - hfs_navbar_submenu_hover [d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/* global $t s */\n(function () {\n function trackEvent(eventName, linkName, getActionContextData) {\n $t('on', eventName, function (e, data) {\n var actionContextData = getActionContextData(e, data);\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', linkName);\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n });\n }\n\n var linkName = 'Navbar Dropdown Menu';\n\n trackEvent('hfs_navbar_submenu_hover', linkName, (_e, data) => ({\n 'news.linkmoduledetail': data.menuName,\n 'news.linkmoduletype': 'Dropdown Menu Opened By Hovering',\n }));\n\n trackEvent('hfs_navbar_submenu_click', linkName, (_e, data) => ({\n 'news.linkmoduledetail': data.menuName,\n 'news.linkmoduletype': 'Dropdown Menu Item Clicked',\n }));\n\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL4c636bd44efc40ab87c85d6c5a237d32",name:"DR - UniAudio - product adapter (heartbeat) [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RC26c4cd8fdaaa42c0a44b6aa768d75833-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL4f535b6a544448f09b568c573f743ea1",name:"DR - Sailthru page track [d:msnbc.com, d:nbcnews.com, d:telemundo.com, d:today.com]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RC08ff7f657938422d812eb30b1da0fa60-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL50ec7f5bdf744eaf9a12d6035ddb0119",name:"20 - BI Tools [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:20}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"(function () {\n var PREFIX = 'BI_';\n\n window.BI = window.BI || {};\n\n var topLevelDomain = (function () {\n var validDomains = ['nbcnews.com', 'today.com', 'msnbc.com', 'telemundo.com'];\n var isAmp = location.hash.indexOf('amp=1') != -1;\n var ampDomainOverride = (location.hash.split('domain=')[1] || '').split('&')[0];\n var topLevelDomain =\n (isAmp && ampDomainOverride) || document.location.hostname.match(/[^./]+\\.[^./]+$/)[0];\n topLevelDomain = validDomains.indexOf(topLevelDomain) != -1 ? topLevelDomain : 'nbcnews.com';\n\n return topLevelDomain;\n })();\n\n function returnPairs(modName) {\n // if no module is given, we are going to return all BI cookies\n var prefix = modName ? PREFIX + modName : PREFIX;\n var pairs = document.cookie.split('; ').filter(function (key) {\n return key.indexOf(prefix) == 0;\n });\n var result = {};\n pairs.forEach(function (pair) {\n var keyValueArray = pair.split('=');\n // remove the prefix on the cookie\n keyValueArray[0] = keyValueArray[0].replace(prefix + '_', '');\n result[keyValueArray[0]] = keyValueArray[1];\n });\n return result;\n }\n\n window.BI.cookie = {\n // should only get one key/value pair at a time\n write: function (modName, key, data, expiration) {\n if (data) {\n modName = modName ? modName : 'GLOBAL';\n var prefixedKey = PREFIX + modName + '_' + key;\n document.cookie = prefixedKey.trim() + '=' + data + '; expires=' + expiration + '; path=/' + '; domain=' + topLevelDomain;\n }\n },\n read: function (modName, key) {\n // if we only get the module name, return all cookies in that module\n if (modName && !key) {\n return returnPairs(modName);\n }\n // if we get both the module and cookie name, return that specific cookie\n else if (modName && key) {\n let name = `${PREFIX}${modName}_${key}=`;\n let decodedCookie = decodeURIComponent(document.cookie);\n let ca = decodedCookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) === 0) {\n return c.substring(name.length, c.length);\n }\n }\n return '';\n }\n // return all BI cookies if nothing is given\n else {\n return returnPairs();\n }\n },\n remove: function (modName, key) {\n window.BI.cookie.write(modName, key, 'true', 'Thu, 01 Jan 1970 00:00:00 GMT');\n },\n };\n\n window.BI.userInfo = {\n save: function (userInfo, expiration) {\n for (var key in userInfo) {\n // default is a 30min expiration\n var dt = new Date();\n dt.setMinutes(dt.getMinutes() + 30);\n // UI is the modName to pass to the cookie writer\n if (expiration) window.BI.cookie.write('UI', key, userInfo[key], expiration);\n // if no expiration is given, use the default 30min\n else window.BI.cookie.write('UI', key, userInfo[key], dt.toGMTString());\n }\n },\n get: function (key) {\n // we only want to get the UI module cookies\n return window.BI.cookie.read('UI', key);\n },\n remove: function (key) {\n window.BI.cookie.remove('UI', key);\n },\n };\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"//BI console\n(function (window) {\n var hasConsole = function () {\n return window.console && window.console.log;\n };\n var prefix = 'BIConsole.';\n const _builtLogGroups = new Map();\n\n var cleanJSON = function(data){\n var resultJSON = {};\n try {\n resultJSON = JSON.parse(JSON.stringify(data));\n }catch(e){\n resultJSON = data;\n }\n return resultJSON;\n };\n window.BI = window.BI || {};\n window.BI.console = {\n list: function (searchKey) {\n searchKey = searchKey || '';\n var result = {};\n for (var key in localStorage) {\n if (key.indexOf(prefix) != -1 && key.split(prefix)[1].indexOf(searchKey) != -1) {\n result[key.replace(prefix,'')] = localStorage.getItem(key);\n }\n }\n return result;\n },\n off: function (key) {\n var keys = this.list(key);\n var result = {};\n for (key in keys) {\n localStorage.setItem(prefix + key, false);\n result[key] = false;\n }\n return result;\n },\n on: function (key) {\n var keys = this.list(key);\n var result = {};\n for (key in keys) {\n localStorage.setItem(prefix + key, true);\n result[key] = true;\n }\n return result;\n },\n log: function (event, data, eventSource) {\n eventSource = eventSource || 'gen';\n var logKey = window.localStorage.getItem(prefix + eventSource);\n if (hasConsole && logKey && logKey.toLowerCase() === 'true') {\n\n // eslint-disable-next-line no-console\n console.log('%c BI:%s %c%s%c @ %s : %O', 'font-weight:normal', eventSource, 'font-weight:bold', event, 'font-weight:normal', (new Date()).toISOString().split('T')[1], cleanJSON(data));\n } else {\n window.localStorage.setItem(prefix + eventSource, false);\n }\n },\n build: function (logGroup) {\n if (_builtLogGroups.has(logGroup)) {\n var builtLogger = _builtLogGroups.get(logGroup);\n builtLogger('logger inherited', logGroup);\n return builtLogger;\n } else {\n var log = this.log;\n var logger = function(event, data) {\n log(event, data, logGroup);\n };\n logger.logGroup = logGroup;\n _builtLogGroups.set(logGroup, logger);\n logger('logger initiated', logGroup);\n return logger;\n }\n }\n };\n})(window);\n",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"(function () {\n var topLevelDomain = document.location.hostname.match(/[^./]+\\.[^./]+$/)[0];\n window.BI = window.BI || {};\n window.BI.brand = (function () {\n var settings = {}\n var brandSettings = function (product) {\n //add default setting\n if (settings[product] && settings[product][topLevelDomain]) {\n return settings[product][topLevelDomain];\n } else {\n return false\n }\n }\n brandSettings.setProduct = function (product, data) {\n settings[product] = data;\n }\n brandSettings.getProduct = function (product) {\n if (product) {\n return settings[product];\n } else {\n return settings;\n }\n }\n brandSettings.getDomain = function (domain) {\n var domainValues = {}\n if (!domain) {\n domain = topLevelDomain;\n }\n var product;\n for (product in settings) {\n if (settings[product][domain]) {\n domainValues[product] = settings[product][domain];\n } else {\n domainValues[product] = 'no settings';\n }\n }\n return domainValues;\n }\n return brandSettings;\n })();\n})();",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/* globals BI */\n(function() {\n var logEvent = window.BI && BI.console && BI.console.build('waitForObjAvailable') || Function.prototype;\n\n window.BI.waitForObjAvailable = function waitForObjAvailable(objStrArray, tries, callback, interval=100){\n var allObjsAvailable = function(objStrArray){\n for (var i = 0; i < objStrArray.length; i++) {\n var obj = ('.'+objStrArray[i]).split('.').reduce(function(prev, cur){return prev[cur]? prev[cur] : window[cur];});\n if (typeof obj === 'undefined') {\n return false;\n }\n }\n return true;\n };\n if (!allObjsAvailable(objStrArray)) {\n if (tries > 0) {\n setTimeout(function() {\n BI.waitForObjAvailable(objStrArray, tries - 1, callback);\n }, interval);\n } else {\n logEvent('not available', { objStrArray, tries, callback, interval });\n }\n } else {\n logEvent('available', { objStrArray, tries, callback, interval });\n callback();\n }\n };\n\n const nonIndexableTypes = new Set(['undefined', 'boolean', 'number', 'bigint', 'symbol']);\n\n function isIndexable(val) {\n return (false == nonIndexableTypes.has(typeof val)) && val != null;\n }\n\n /* SNIPAF: { \"name\": \"dependsOn\", \"version\": 1 } */\n const valuesBeingPolled = {};\n\n window.BI.dependsOn = function(names, { timeLimit = 10_000, interval = 250 } = {}) {\n // Given a \".\" separated string, get the actual value it represents from the global scope\n const safelyGetValue = name => name.split('.').reduce((p, c) => isIndexable(p) ? p[c] : undefined, window);\n\n const pollUntilAvailable = name => new Promise((resolve, reject) => {\n // Trying to retrieve the desired value without\n // polling and resolve early, if possible.\n const initialValue = safelyGetValue(name);\n if (typeof initialValue !== 'undefined') {\n return resolve(initialValue);\n }\n\n const poll = valuesBeingPolled[name] ?? { interval, timeElapsed: 0, loop: null, listeners: [] };\n\n // Adding the time limit to the time already elapsed in polling,\n // so that polling times aren't shorter than intended.\n const adjustedTimeLimit = poll.timeElapsed + timeLimit;\n\n // Setting up a listener function which is responsible for resolving or rejecting\n // the top-level promise, and for signaling to the polling loop whether it is\n // still needed. Returning false indicates that the listener can be removed.\n poll.listeners.push(timeElapsed => {\n const value = safelyGetValue(name);\n\n if (typeof value !== 'undefined') {\n resolve(value);\n return false;\n }\n if (timeElapsed >= adjustedTimeLimit) {\n reject(new Error(`\\`${name}\\` is missing after ${timeLimit}ms`));\n return false;\n }\n return true;\n });\n\n // Setting up a function that will be called on each iteration of the polling\n // loop, which is responsible for timekeeping and keeping state clean.\n const pollingBehavior = () => {\n poll.timeElapsed += poll.interval;\n poll.listeners = poll.listeners.filter(fn => fn(poll.timeElapsed));\n\n // Cleaning up after all listeners for a value have been removed\n if (poll.listeners.length === 0) {\n clearInterval(poll.loop);\n delete valuesBeingPolled[name];\n }\n };\n\n if (poll.loop) {\n // Making the polling loop faster if necessary. Multiple callers\n // can have different intervals, so we'll prioritize the faster one.\n if (poll.interval > interval) {\n clearInterval(poll.loop);\n poll.loop = setInterval(pollingBehavior, interval);\n poll.interval = interval;\n }\n }\n else {\n // Setting up the polling loop if it doesn't exist\n poll.loop = setInterval(pollingBehavior, poll.interval);\n }\n\n // Storing the polling object for future reference\n valuesBeingPolled[name] = poll;\n\n // Calling the first iteration of the polling loop immediately\n // to prevent a delay before the first check.\n pollingBehavior();\n });\n\n return Promise.all(names.map(pollUntilAvailable));\n };\n /* SNIPAF: END */\n\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals BI */\n(function () {\n var logEvent = (window.BI && BI.console && BI.console.build('waitForElemAvailable')) || Function.prototype;\n\n window.BI.waitForElemAvailable = ({\n targetSelector = null,\n parentNode = null,\n timeoutSeconds = 10,\n observerOptions = {\n childList: true,\n },\n } = {}) => {\n return new Promise((resolve, reject) => {\n if (!targetSelector) return reject('selector not provided');\n if (!elementsAvailable(targetSelector, resolve)) {\n // Register a MutationObserver callback\n const observer = new MutationObserver((_records, observer) => {\n if (elementsAvailable(targetSelector, resolve)) {\n observer.disconnect();\n clearTimeout(timer);\n return;\n }\n });\n\n // Initialize a timer\n // rejects if the element isn't found within the timelimit\n const timer = setTimeout(() => {\n if (!elementsAvailable(targetSelector, resolve)) {\n reject(`${targetSelector} not found within ${timeoutSeconds} seconds`);\n logEvent('Elements not available', {parentNode, targetSelector, timeoutSeconds, observerOptions});\n }\n observer.disconnect();\n }, timeoutSeconds * 1_000);\n\n if (!parentNode) {\n return reject('parentNode not provided');\n }\n // Start observing mutations\n observer.observe(parentNode, observerOptions);\n logEvent('Starting observation', parentNode);\n }\n });\n };\n\n const elementsAvailable = (selector, resolve) => {\n let elements = document.querySelectorAll(selector);\n if (elements.length) {\n // Elements w/ specified selector exist\n // resolve, log, and return\n resolve(Array.from(elements));\n logEvent('Elements available', elements);\n return true;\n } else {\n return false;\n }\n };\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,
source:"/* SNIPAF: { \"name\": \"queryToggle\", \"version\": 1 } */\n(function (window, document) {\n 'use strict';\n\n var STORAGE_KEY_ENV = 'AdobeLaunchEnv';\n var STORAGE_KEY_MODE = 'AdobeLaunchIsMobile';\n var STORAGE_KEY_CHROMELESS = 'AdobeLaunchChromeless';\n var PARAM_NAME = 'adobeLaunchEnv';\n var PARAM_NAME_CHROMELESS = 'chromeless';\n\n function sameOrigin(u) {\n try {\n return new URL(u, location.href).origin === location.origin;\n }\n catch (e) {\n return false;\n }\n }\n function withParam(urlLike, key, val) {\n var u = new URL(urlLike, location.href);\n if (val == null || val === '') u.searchParams?.delete(key);\n else u.searchParams?.set(key, val);\n return u.toString();\n }\n function withoutParam(urlLike, key) {\n var u = new URL(urlLike, location.href);\n u.searchParams?.delete(key);\n return u.toString();\n }\n\n // Keep the param visible on this page URL (no reload).\n function ensureUrlHasParam(env) {\n var u = new URL(location.href);\n var existing = u.searchParams?.get(PARAM_NAME);\n if (env && existing !== env) {\n history.replaceState(history.state, document.title, withParam(location.href, PARAM_NAME, env));\n }\n }\n\n // SPA support: always carry adobeLaunchEnv on pushState/replaceState for same-origin URLs.\n var _ps = history.pushState, _rs = history.replaceState;\n function patchHistory(env) {\n if (!_ps?._adobeEnvPatched) {\n history.pushState = function (state, title, url) {\n if (typeof url === 'string' && sameOrigin(url)) url = withParam(url, PARAM_NAME, env);\n else if (url?.href && sameOrigin(url.href)) url = withParam(url.href, PARAM_NAME, env);\n var result = _ps.apply(this, [state, title, url]);\n // Check for URL param changes after navigation\n setTimeout(function () {\n window.BI?.env?._checkAndSyncFromUrl();\n }, 0);\n return result;\n };\n history.pushState && (history.pushState._adobeEnvPatched = true);\n }\n if (!_rs?._adobeEnvPatched) {\n history.replaceState = function (state, title, url) {\n if (typeof url === 'string' && sameOrigin(url)) url = withParam(url, PARAM_NAME, env);\n else if (url?.href && sameOrigin(url.href)) url = withParam(url.href, PARAM_NAME, env);\n var result = _rs.apply(this, [state, title, url]);\n // Check for URL param changes after navigation\n setTimeout(function () {\n window.BI?.env?._checkAndSyncFromUrl();\n }, 0);\n return result;\n };\n history.replaceState && (history.replaceState._adobeEnvPatched = true);\n }\n }\n\n // Classic navigations: last-moment link rewrite to keep the param.\n function startClickPropagation(env) {\n if (window._adobeEnvClickHook) return;\n window._adobeEnvClickHook = true;\n document.addEventListener('click', function (e) {\n var a = e.target?.closest ? e.target?.closest('a[href]') : null;\n if (!a) return;\n var href = a.getAttribute('href');\n if (!href || !sameOrigin(href)) return;\n a.setAttribute('href', withParam(href, PARAM_NAME, env));\n }, true);\n }\n\n // Check current URL for query parameter\n function getUrlParam() {\n var u = new URL(location.href);\n return u.searchParams?.get(PARAM_NAME);\n }\n\n // --- Public API ---\n window.BI = window.BI || {};\n window.BI['env'] = window?.BI?.env || (function () {\n var _env = null, _isMobile = false, _chromeless = false;\n\n function read() {\n _env = localStorage.getItem(STORAGE_KEY_ENV);\n _isMobile = localStorage.getItem(STORAGE_KEY_MODE) === 'true';\n _chromeless = localStorage.getItem(STORAGE_KEY_CHROMELESS) === 'true';\n return { env: _env, isMobile: _isMobile, chromeless: _chromeless };\n }\n\n function checkAndSyncFromUrl() {\n var urlParam = getUrlParam();\n var storedEnv = localStorage.getItem(STORAGE_KEY_ENV);\n\n if (urlParam) {\n // URL parameter exists - this takes precedence\n if (urlParam !== storedEnv) {\n // Update storage to match URL\n localStorage.setItem(STORAGE_KEY_ENV, urlParam);\n }\n _env = urlParam;\n // Keep other settings from localStorage\n _isMobile = localStorage.getItem(STORAGE_KEY_MODE) === 'true';\n _chromeless = localStorage.getItem(STORAGE_KEY_CHROMELESS) === 'true';\n }\n else {\n // No URL parameter - completely clear state\n _env = null;\n _isMobile = false;\n _chromeless = false;\n // Always clear storage when no URL param\n localStorage.removeItem(STORAGE_KEY_ENV);\n localStorage.removeItem(STORAGE_KEY_MODE);\n localStorage.removeItem(STORAGE_KEY_CHROMELESS);\n }\n\n return { env: _env, isMobile: _isMobile, chromeless: _chromeless };\n }\n\n function apply() {\n if (!_env) return;\n ensureUrlHasParam(_env);\n patchHistory(_env);\n startClickPropagation(_env);\n // No injection; app will load the proper Launch lib on full reload based on the URL param.\n }\n\n return {\n set: function (env, opts) {\n opts = opts || {};\n _env = env || 'Production';\n _isMobile = !!opts.isMobile;\n _chromeless = !!opts.chromeless;\n\n // Store in localStorage\n localStorage.setItem(STORAGE_KEY_ENV, _env);\n localStorage.setItem(STORAGE_KEY_MODE, String(_isMobile));\n localStorage.setItem(STORAGE_KEY_CHROMELESS, String(_chromeless));\n\n // If immediate effect is requested, do a full reload so the app picks the right Launch URL.\n if (opts.reloadNow) {\n var url = new URL(location.href);\n url.searchParams?.set(PARAM_NAME, _env);\n if (_chromeless) {\n url.searchParams?.set(PARAM_NAME_CHROMELESS, 'true');\n }\n else {\n url.searchParams?.delete(PARAM_NAME_CHROMELESS);\n }\n // Use replace so back button isn't polluted with param-only step.\n location.replace(url.toString());\n return;\n }\n\n // Update URL params without reload\n ensureUrlHasParam(_env);\n apply();\n },\n clear: function () {\n _env = null;\n _isMobile = false;\n _chromeless = false;\n localStorage.removeItem(STORAGE_KEY_ENV);\n localStorage.removeItem(STORAGE_KEY_MODE);\n localStorage.removeItem(STORAGE_KEY_CHROMELESS);\n history.replaceState(history.state, document.title, withoutParam(withoutParam(location.href, PARAM_NAME), PARAM_NAME_CHROMELESS));\n },\n status: function () {\n return { env: _env, isMobile: _isMobile, chromeless: _chromeless, url: location.href };\n },\n _apply: apply, // internal\n _read: read, // internal\n _checkAndSyncFromUrl: checkAndSyncFromUrl, // internal\n };\n })();\n\n // Initialize: check URL param first, then fall back to stored values\n var current = window.BI?.env?._checkAndSyncFromUrl();\n var urlParam = new URL(location.href).searchParams?.get(PARAM_NAME);\n\n // Only apply if there's BOTH an environment AND a URL parameter\n // This prevents applying when we've just cleared due to missing URL param\n if (current?.env && urlParam && current?.env === urlParam) {\n // URL param exists and matches what we have in memory\n window.BI?.env?._apply();\n }\n\n // Listen for popstate events (back/forward navigation) to detect URL param changes\n window.addEventListener('popstate', function () {\n var updated = window.BI?.env?._checkAndSyncFromUrl();\n // Only apply if there's still an environment after sync\n var urlParam = new URL(location.href).searchParams?.get(PARAM_NAME);\n if (updated?.env && urlParam) {\n window.BI?.env?._apply();\n }\n });\n\n // Listen for storage changes (e.g., from bookmarklet)\n window.addEventListener('storage', function (e) {\n if (e.key === STORAGE_KEY_ENV || e.key === STORAGE_KEY_MODE || e.key === STORAGE_KEY_CHROMELESS) {\n // Storage changed externally (e.g., by bookmarklet), sync with URL\n var updated = window.BI?.env?._checkAndSyncFromUrl();\n // Only apply if there's still an environment after sync\n var urlParam = new URL(location.href).searchParams?.get(PARAM_NAME);\n if (updated?.env && urlParam) {\n window.BI?.env?._apply();\n }\n }\n });\n})(window, document);\n/* SNIPAF: END */\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL5154bbe7108a4f2d9aabf4c04dbd7bce",name:"50 - Action - mbt_quicktake_inview [d:nbcnews.com, d:msnbc.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["nbcnews.com","msnbc.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/* globals $t, s */\n(function () {\n function track(eventName, actionContextData) {\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', eventName);\n\n for (var item in actionContextData) {\n delete s?.contextData[item];\n }\n }\n\n $t('on', 'mbt_quicktake_inview', function () {\n track('quicktake module is scrolled into view', {\n 'news.linkmoduledetail': 'not available',\n 'news.linkmoduletype': 'quicktake module inview',\n });\n });\n\n $t('on', 'mbt_curatedlist_inview', function (_e, data) {\n track('curatedlist module is scrolled into view', {\n 'news.linkmoduledetail': `id: ${data?.id}`,\n 'news.linkmoduletype': `curatedlist module inview: ${data?.presentation}`,\n });\n });\n\n $t('on', 'mbt_dealoftheday_inview', function (_e, data) {\n track('deal of the day module is scrolled into view', {\n 'news.linkmoduledetail': 'not available',\n 'news.linkmoduletype': 'dealoftheday module inview',\n });\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL5251b20fb70f41ecbfb68aadb30ecdcb",name:"DR - Decibel Audio Heartbeat",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RC4962e135f87e4b9ebb03efb23ff4f259-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL5485ce35d44544cbb6b80016a5212ddd",name:"50 - Action - mbt_bacon_* - [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"(function () {\n /* globals $t, s */\n function track(situation, actionContextData) {\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', situation);\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n }\n\n function stringifyProduct(productObj = {}) {\n // `salePrice` exists as well if desired later\n const { name, listPrice } = productObj;\n return `name:${name},listPrice:${listPrice}`;\n }\n\n $t('on', 'mbt_bacon_click', function (e, data = {}) {\n if(data.action === 'navClick') {\n track('bacon module nav click', {\n 'news.linkmoduledetail': data.type,\n 'news.linkmoduletype': 'Bacon module nav clicked',\n });\n }\n else if (data.action === 'itemClick') {\n const dataFormattedAsString = Object.keys(data).reduce((resolved, item) =>\n resolved.concat(item, ':', data[item], ';'), '');\n track('bacon module click', {\n 'news.linkmoduledetail': dataFormattedAsString,\n 'news.linkmoduletype': 'Bacon module clicked',\n });\n }\n else if (data.action === 'addToCart') {\n let lmt = `Add Item To Cart ${data.item.seller ? data.item.seller: ''}`;\n track('bacon module click', {\n 'news.linkmoduledetail': stringifyProduct(data.item),\n 'news.linkmoduletype': lmt,\n });\n }\n else if (data.action === 'addAllItemsToCart') {\n let [item] = data.items;\n let lmt = `Add All Items To Cart ${item.seller ? item.seller : ''}`;\n track('bacon module click', {\n 'news.linkmoduledetail': data.items.map(stringifyProduct).join(';'),\n 'news.linkmoduletype': lmt,\n });\n }\n else if (data.action === 'cardClick') {\n let itemIndex = (data.content?.items || []).findIndex(item => item.id === data.id);\n track('bacon module click', {\n 'news.linkmoduledetail': `${data.title || 'na'}:${itemIndex}:${data.id || 'na'}:${data.headlineText || 'na'}`,\n 'news.linkmoduletype': 'Bacon card click',\n });\n }\n });\n\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"(function () {\n /* globals $t, s */\n function track(situation, actionContextData) {\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', situation);\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n }\n\n $t('on', 'mbt_bacon_scroll', function () {\n track('bacon module scroll', {\n 'news.linkmoduletype': 'bacon module scroll',\n });\n });\n})();\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL55d8c5dd76454d65a3f449ae18ac4130",name:"60 - univideo - product adapter (parsely) [univideo, d:msnbc.com, d:nbcnews.com, d:telemundo.com, d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:60}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals $t, PARSELY, uniVideo */\n(function () {\n var logEvent = (function () {\n var logGroup = 'uni_parsley';\n var logger = function (event, data) {\n\n if (window.BI && window.BI.console) {\n window.BI.console.log(event, data, logGroup);\n }\n };\n logger.logGroup = logGroup;\n return logger;\n })();\n\n uniVideo.addEventListenerFactory(function parsely() {\n var currentVideo = {};\n var blurred = false;\n\n //blur focus events\n window.addEventListener('blur', function () {\n //return;\n if (currentVideo.playState === 'play') {\n blurred = true;\n logEvent('blur',{ currentVideo: currentVideo });\n PARSELY.video.trackPause(currentVideo.guid, currentVideo.mediaInfo, currentVideo.url);\n }\n });\n window.addEventListener('focus', function () {\n if (currentVideo.playState === 'play' && blurred) {\n blurred = false;\n logEvent('focus',{ currentVideo:currentVideo });\n PARSELY.video.trackPlay(currentVideo.guid, currentVideo.mediaInfo, currentVideo.url);\n }\n });\n //video events\n return function eventListener(e, data) {\n if (window.PARSELY && window.PARSELY.video) {\n var videoData = data && data.videoData || {};\n var videoState = data && data.videoState || {};\n var pubDate = (function () { return videoData.datePublished && (new Date(videoData.datePublished).getTime()) || 0; })();\n\n switch (data.eventType) {\n case 'PLAY':\n if (!videoState.inAd) {\n\n // Handling cases where the video loads for the\n // first time, or replaces an existing video.\n if (videoData.guid && (currentVideo.guid != videoData.guid)) {\n if (currentVideo.guid && !blurred) {\n logEvent('stop previous',{ currentVideo:currentVideo });\n PARSELY.video.trackPause(currentVideo.guid, currentVideo.mediaInfo, currentVideo.url);\n }\n currentVideo = {\n guid: videoData.guid,\n mediaInfo: {\n title: videoData.title || '', // required\n pub_date_tmsp: pubDate // timestamp\n },\n url: $t('dataLayer.canonical_url', document.location.href),\n playState: 'play'\n };\n logEvent('start',{ currentVideo:currentVideo });\n PARSELY.video.trackPlay(currentVideo.guid, currentVideo.mediaInfo, currentVideo.url);\n }\n\n // Handling \"un-pause\"\n if (!blurred && currentVideo.playState !== 'play') {\n logEvent('start',{ currentVideo:currentVideo });\n PARSELY.video.trackPlay(currentVideo.guid, currentVideo.mediaInfo, currentVideo.url);\n currentVideo.playState = 'play';\n }\n }\n\n break;\n case 'COMPLETE':\n case 'STOP':\n case 'PAUSE':\n if (!blurred && currentVideo.playState === 'play') {\n logEvent('stop',{ currentVideo:currentVideo });\n PARSELY.video.trackPause(currentVideo.guid, currentVideo.mediaInfo, currentVideo.url);\n currentVideo.playState = 'pause';\n }\n break;\n\n default:\n break;\n }\n }\n else {\n logEvent(`uni event before parsely load: ${data.eventType}`, data);\n }\n };\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL571ea6f7723b45159ae4a74b3d27da23",name:"50 - Merkle DCR Solution [d:nbcnews.com, d:msnbc.com, d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals BI */\n(function () {\n\n BI.dependsOn(['s', 's.topLevelDomain']).then(setupDRCScripts);\n\n\n function setupDRCScripts() {\n var logEvent = BI?.console?.build('merkle_dcr') ?? Function.prototype;\n var debug = document.location.search.indexOf('AF_debug=true') != -1;\n var brandSettings = {\n 'msnbc.com': '5998_04748',\n 'nbcnews.com': '5998_04679',\n 'today.com': '5998_04749',\n };\n var domain = window.s.topLevelDomain;\n var singleBrandCID = brandSettings[domain];\n\n singleBrandCID && merkleScript(singleBrandCID, domain);\n\n function merkleScript(mrkl_cid, mrkl_domain) {\n debug && logEvent('Kicking off Existing Mparticle DCR tag...debug={{DebugMode}}');\n var execute_once_per_session = true;\n //var mrkl_cid = 'test';\n //var mrkl_domain = 'test-domain';\n var intervalInSeconds = 1;\n var stopRetryAfterSeconds = 5;\n // Set interval to fire off every second and execute some code.\n const retryMparticle = setInterval(() => {\n debug && logEvent('Trying mParticle...');\n // On every interval execution check if mParticle has been set and if mParticle.ready method is available.\n if (window.mParticle && window.mParticle.ready) {\n debug && logEvent('mParticle ready! Add DCR.');\n window.mParticle.ready(\n // Que up a function inside the mParticle.ready method.\n // This function will be executed once mParticle is avaiilable and ready.\n function () {\n // This method check if the browser session item has been set or not.\n // Also logs the session value for debugging purposes.\n function shouldExecuteForSession(onetime = true) {\n debug && logEvent(\n `onetime=${onetime} session-item=${sessionStorage.getItem(\n 'nbcu-dcr-session-executed',\n )} executed=${\n !sessionStorage.getItem('nbcu-dcr-session-executed') || !onetime ? true : false\n }`,\n );\n return !sessionStorage.getItem('nbcu-dcr-session-executed') || !onetime ? true : false;\n }\n\n // Check if mParticle MPID exists and if it does then return it.\n function checkIfMPIDExist() {\n return (\n window.mParticle.Identity.getCurrentUser() &&\n window.mParticle.Identity.getCurrentUser().getMPID()\n );\n }\n\n // Function that checks for MPID and initializes DCR.\n // If MPID not available tries to initialize after 3 seconds.\n function dcr() {\n if (checkIfMPIDExist()) {\n debug && logEvent('MPID Found, no need for timeout');\n initializeMerkle();\n } else {\n debug && logEvent('No MPID Found, waiting...');\n setTimeout(initializeMerkle, 3000);\n }\n }\n\n // Main function that initializes DCR first with MPID if exists.\n // If MPID does not exists initializes without it.\n function initializeMerkle() {\n if (checkIfMPIDExist()) {\n const mpid = window.mParticle.Identity.getCurrentUser().getMPID();\n window._svq = window._svq || [];\n window._svq.push(['_setUID', mpid]);\n window._svq.push(['_trackPageView']);\n (function (d, c) {\n var mrklsv = d.createElement(c);\n mrklsv.type = 'text/javascript';\n mrklsv.src = `https://nbcu.track.securedvisit.com/js/sv.js?sv_cid=${mrkl_cid}&sv_origin=${mrkl_domain}`;\n var mrkls = d.getElementsByTagName(c)[0];\n mrkls.parentNode.insertBefore(mrklsv, mrkls);\n })(document, 'script');\n debug && logEvent('Initializing DCR with MPID');\n } else {\n debug && logEvent('Initializing DCR without MPID');\n window._svq = window._svq || [];\n window._svq.push(['_trackPageView']);\n (function (d, c) {\n var mrklsv = d.createElement(c);\n mrklsv.type = 'text/javascript';\n mrklsv.src = `https://nbcu.track.securedvisit.com/js/sv.js?sv_cid=${mrkl_cid}&sv_origin=${mrkl_domain}`;\n var mrkls = d.getElementsByTagName(c)[0];\n mrkls.parentNode.insertBefore(mrklsv, mrkls);\n })(document, 'script');\n }\n }\n\n // Checks if session is set and it initializes DCR if its not set and sets it.\n if (shouldExecuteForSession(execute_once_per_session)) {\n sessionStorage.setItem('nbcu-dcr-session-executed', true);\n dcr();\n }\n },\n );\n // Immediately after mparticle.ready que clear the retryMparticle timeout and kill it off.\n clearInterval(retryMparticle);\n debug && logEvent('DCR: Clear retry!');\n }\n }, intervalInSeconds * 1000);\n // Cleanup the retryMparticle setInterval after 5 seconds regardless iif itsucceeded or not.\n setTimeout(function () {\n return clearInterval(retryMparticle);\n }, stopRetryAfterSeconds * 1000);\n }\n }\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL59c9a5666aac4d8a89961c763897eea4",name:"50 - Data ICID Attribute [d:nbcnews.com, d:msnbc.com, d:telemundo.com, d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"(function() {\n // Adding click handling for links with \"icid\" data attributes,\n // so that clicking on them will cause the icid value to be\n // added to their user info. \"icid\" is a value representing\n // where a user was when they clicked on the link.\n $t('on', 'dtm_click_track', function(_e, data) {\n if (data.icid != '') {\n BI.userInfo && BI.userInfo.save({ icid: data.icid });\n }\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL5d721148544d41598614a6db76419c0e",name:"60 - univideo - product adapter (mparticle) [univideo, d:msnbc.com, d:nbcnews.com, d:telemundo.com, d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:60}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"\n(function() {\n /* global $t, uniVideo, BI */\n var logEvent = (window.BI && BI.console && BI.console.build('uni_mparticle')) || Function.prototype;\n\n // Mapping univideo event name to mparticle event name\n let eventNames = new Map([\n [uniVideo.event.PLAY, 'VOD Clip Start'],\n [uniVideo.event.COMPLETE, 'VOD Clip Complete'],\n [uniVideo.event.AD_PLAY, 'Ad Start'],\n [uniVideo.event.AD_COMPLETE, 'Ad Complete'],\n [uniVideo.event.AD_BREAK_START, 'Ad Pod Start'],\n [uniVideo.event.AD_BREAK_COMPLETE, 'Ad Pod Complete'],\n ]);\n\n uniVideo.addEventListenerFactory(function mparticle() {\n return function eventListener(_e, data) {\n const { eventType, videoData, videoState } = data;\n let eventName = eventNames.get(eventType);\n\n // Distinguishing between on-demand and live video streams\n if (eventType == uniVideo.event.PLAY && videoData.streamType == 'linear') {\n eventName = 'Linear Stream Start';\n }\n if (eventType == uniVideo.event.STOP && videoData.streamType == 'linear') {\n eventName = 'Linear Stream Close';\n }\n\n // Skipping events that don't have a counterpart in mparticle\n if (!eventName) return;\n\n // Should this variable be set to something else?\n const noValue = 'not available';\n\n let videoBrandDomain = noValue;\n let videoDomain = videoData.custom.videoDomain || noValue;\n if (videoDomain.includes('nbcnews')) videoBrandDomain = 'NBC News';\n if (videoDomain.includes('msnbc')) videoBrandDomain = 'MSNBC';\n if (videoDomain.includes('today')) videoBrandDomain = 'Today';\n\n // Convert a valid date string to RFC 2822 format,\n // returning it as-is if not a valid date.\n function toRFC2822(maybeDateString) {\n const isDate = s => false == Number.isNaN(Date.parse(s));\n if (!isDate(maybeDateString)) return maybeDateString;\n return new Date(maybeDateString).toString();\n }\n\n // Constructing mparticle metadata from univideo event data\n const eventData = {\n 'video mpx id': videoData.mpxId || noValue,\n 'video guid': videoData.guid || noValue,\n 'video brand domain': videoBrandDomain,\n 'video title': videoData.title || noValue,\n 'video network': videoData.newsNetwork || noValue,\n 'video program': videoData.source || noValue,\n 'video content source': videoData.source || noValue,\n 'video air date': toRFC2822(videoData.dateBroadcast) || noValue,\n 'video asset status': 'Unrestricted',\n 'video screen mode': 'Normal',\n 'video clip category': videoData.videoType || noValue,\n 'video player name': videoData.playbackAdapter || noValue,\n 'video initiation': videoData.playInitiate || noValue,\n 'video playlist name': videoData.playListLabel || noValue,\n 'video playlist id': videoData.playListId || noValue,\n 'video content type': 'Video',\n 'video publish date': toRFC2822(videoData.datePublished) || noValue,\n 'video page url': window.location.href.split('?')[0] || noValue,\n 'video page name': window.s?.pageName ?? window.location.pathname,\n 'video index start': typeof videoData.playheadPosition === 'number' ? Math.round(videoData.playheadPosition * 1000) : noValue,\n 'video mute state': videoState.isMuted ? 'muted' : 'unmuted' || noValue,\n\n // The properties below need revisiting, because\n // they're unlikely to be correct or general enough.\n\n 'video length': noValue,\n };\n\n logEvent('Track Event', eventName, eventData);\n\n // Announcing the mparticle event to be\n // handled by another rule.\n BI.dependsOn(['mParticle']).then(() => {\n $t('track', 'mParticle_track_event', {\n eventType: 'Navigation',\n eventName,\n eventData,\n });\n });\n };\n\n });\n})();\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL5fbce9190c39444dbf071d09cb4d1a4f",name:"50 - Parsely analytics [d:msnbc.com, d:nbcnews.com, d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com"]},timeout:2e3},{modulePath:"core/src/lib/conditions/pathAndQuerystring.js",settings:{paths:[{value:"widget/.*",valueIsRegex:!0},{value:"embedded-pkg/.*",valueIsRegex:!0},{value:"playmaker/embed.*",valueIsRegex:!0},{value:".*/embedded-newsletter/.*",valueIsRegex:!0},{value:".*/embedded-video/.*",valueIsRegex:!0}]},negate:!0,timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,
source:"/* globals VIP_EXP */\n(function () {\n const topLevelDomain = location.hostname.match(/[^./]+\\.[^./]+$/)[0];\n window.VIP_EXP = window.VIP_EXP || { config: {} };\n\n let experimentsLoaded = false;\n\n VIP_EXP.loadVIPExp = function (apiKey, options = {}) {\n if (!apiKey || experimentsLoaded) return;\n\n VIP_EXP.config = {\n apikey: apiKey,\n flickerControlEnabled: options.enableFlickerControl,\n liveUpdatesEnabled: options.liveUpdatesEnabled,\n liveUpdateTimeout: options.liveUpdateTimeout || 5000\n };\n\n const script = document.createElement('script');\n script.src = 'https://experiments.parsely.com/vip-experiments.js?apiKey=' + apiKey;\n script.setAttribute('data-debug', 'true');\n script.type = 'text/javascript';\n script.async = false;\n script.fetchPriority = 'high';\n document.head.appendChild(script);\n\n if (options.enableFlickerControl) {\n const hasFCP = performance?.getEntriesByName?.('first-contentful-paint')?.length > 0;\n if (!hasFCP) {\n const blockerId = 'vipexp-fooc-prevention';\n VIP_EXP.config.disableFlickerControl = function () {\n const el = document.getElementById(blockerId);\n if (el?.parentNode) el.parentNode.removeChild(el);\n };\n const style = document.createElement('style');\n style.id = blockerId;\n style.appendChild(document.createTextNode('body { visibility: hidden; }'));\n document.head.appendChild(style);\n setTimeout(VIP_EXP.config.disableFlickerControl, 500);\n }\n }\n\n experimentsLoaded = true;\n };\n\n // Load VIP experiments\n VIP_EXP.loadVIPExp(topLevelDomain, {\n enableFlickerControl: false,\n liveUpdatesEnabled: true,\n liveUpdateTimeout: 5000\n });\n\n const observerConfig = { childList: true, subtree: true };\n\n function createObserver() {\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList' || mutation.type === 'subtree') {\n VIP_EXP.loadVIPExp(topLevelDomain, {\n enableFlickerControl: false,\n liveUpdatesEnabled: true,\n liveUpdateTimeout: 5000\n });\n window.VIP_EXP?.runExperiments?.();\n break;\n }\n }\n });\n\n observer.observe(document.body, observerConfig);\n return observer;\n }\n\n let observer = createObserver();\n\n // Periodically ensure the observer is active\n setInterval(() => {\n if (!observer) {\n observer = createObserver();\n }\n }, 10000); // Check every 10 seconds\n\n // Configure Parsely settings\n window.PARSELY = window.PARSELY || {};\n window.PARSELY.autotrack = false;\n window.PARSELY.video = { autotrack: false };\n\n // Load Parsely analytics script\n const pjs = document.createElement('script');\n pjs.async = true;\n pjs.src = 'https://cdn.parsely.com/keys/' + topLevelDomain + '/p.js';\n document.head.appendChild(pjs);\n})();\n\n\n",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals $t, PARSELY */\n(function () {\n $t('on', 'dtm_pageView', function (e, data) {\n var trackView = data.trackView !== false;\n\n function trackParselyPageView() {\n PARSELY.beacon.trackPageView({\n url: [location.protocol, '//', location.host, location.pathname].join(''), // URL to be tracked\n urlref: document.referrer, // Referring URL\n js: 1, // flag indicating this is dynamic\n });\n }\n function initializeParselyTracking() {\n if (window.PARSELY && window.PARSELY.beacon) {\n trackParselyPageView();\n } else {\n window.PARSELY = window.PARSELY || {};\n const originalOnReady = window.PARSELY.onReady;\n window.PARSELY.onReady = function () {\n if (originalOnReady) originalOnReady();\n trackParselyPageView();\n };\n }\n }\n if (trackView) {\n initializeParselyTracking();\n }\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL6093d46ca5ee402db812a054242375a8",name:"40 - Nielsen SDK Library Load [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:40}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:'!function(t,n)\n{\n t[n]=t[n]||\n {\n nlsQ:function(e,o,c,r,s,i)\n {\n return s=t.document,\n r=s.createElement("script"),\n r.async=1,\n r.src=("http:"===t.location.protocol?"http:":"https:")+"//cdn-gl.imrworldwide.com/conf/"+e+".js#name="+o+"&ns="+n,\n i=s.getElementsByTagName("script")[0],\n i.parentNode.insertBefore(r,i),\n t[n][o]=t[n][o]||{g:c||{},\n ggPM:function(e,c,r,s,i){(t[n][o].q=t[n][o].q||[]).push([e,c,r,s,i])}},t[n][o]\n }\n }\n}\n(window,"NOLBUNDLE");',language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL6e8f3baf468d40d9a7571fa4ef042094",name:"60 - univideo - player adapter (playmaker) [univideo, d:msnbc.com, d:nbcnews.com, d:telemundo.com, d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:60}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"(function () {\n /* global $t */\n var logEvent = (function () {\n var logGroup = 'uni_playmaker';\n var logger = function (event, data) {\n\n if (window.BI && window.BI.console) {\n window.BI.console.log(event, data, logGroup);\n }\n };\n logger.logGroup = logGroup;\n return logger;\n })();\n\n var safeParseJSON = function (string) {\n var output = {};\n try {\n if (string && typeof string === 'string') {\n output = JSON.parse(string);\n }\n } catch (e) {\n logEvent('Parse Error', { error: e, string: string });\n }\n return output;\n };\n var uniEvent = window.uniVideo && window.uniVideo.event || {};\n var uniTrack = window.uniVideo && window.uniVideo.buildUniTrack() || function () { };\n\n var playmakerUniBind = function (event, data) {\n if (event === 'MEDIA_STATE_CHANGE') {\n // convert media state changes to events\n event = data.status;\n }\n\n switch (event) {\n case 'UPDATE_TIME':\n uniTrack.videoData({ playheadPosition: data.playerTime * 1000 });\n uniTrack(uniEvent.PROGRESS);\n break;\n case 'USER_ACTION_CLICK_TO_PLAY':\n //nbcsplayer.PlayerMessageTypes.USER_ACTION_CLICK_TO_PLAY\n break;\n case 'MAIN_MEDIA_CHANGE':\n // load metadata\n var tmpCount = uniTrack.videoData().videoCount || 0;\n // overwrite with defaults and repopulate\n uniTrack.videoData({\n datePublished: '', // Need to get this data\n duration: '',\n guid: data.pid,\n newsNetwork: data.name, // maybe?\n playbackAdapter: 'playmaker', // maybe?\n playInitiate: 'Auto', // (Continuous,Manual,Auto)\n sentiment: 'live', // hard coded\n source: data.name, // maybe?, NBC News\n streamType: 'linear', //hardcoded for now\n title: data.title,\n videoCount: tmpCount + 1,\n videoType: data.type, // Prerecorded?\n }, true);\n\n //update source value for \"news now\" show\n if (uniTrack.videoData().title === 'NBC News NOW') {\n uniTrack.videoData({ source: uniTrack.videoData().title });\n }\n uniTrack(uniEvent.VIDEO_LOADED);\n break;\n case 'rehtml5player:initialized':\n uniTrack(uniEvent.INIT);\n break;\n case 'rehtml5player:playing':\n uniTrack(uniEvent.PLAY);\n uniTrack.videoState({ playState: 'play' });\n break;\n case 'rehtml5player:seeking':\n uniTrack(uniEvent.SEEK_START);\n break;\n case 'rehtml5player:waiting':\n uniTrack(uniEvent.PAUSE);\n uniTrack.videoState({ playState: 'pause' });\n break;\n case 'stop': // this is unknown, havent seen\n uniTrack(uniEvent.STOP);\n uniTrack.videoState({ playState: 'stop' });\n break;\n case 'rehtml5player:paused':\n uniTrack(uniEvent.PAUSE);\n uniTrack.videoState({ playState: 'pause' });\n break;\n case 'FULLSCREEN':\n uniTrack(uniEvent.FULLSCREEN);\n uniTrack.videoState({ fullScreen: data.fullScreen });\n break;\n case 'SEEK_COMPLETE':\n uniTrack(uniEvent.SEEK_COMPLETE);\n uniTrack.videoState({ playState: 'stop' });\n break;\n case 'AD_START':\n uniTrack(uniEvent.AD_PLAY);\n uniTrack.videoState({\n inAd: true,\n playState: 'play'\n });\n break;\n case 'AD_COMPLETE':\n uniTrack(uniEvent.AD_COMPLETE);\n uniTrack.videoState({\n inAd: false,\n playState: 'stop',\n adPosition: uniTrack.videoState().adPosition + 1\n });\n break;\n case 'AD_BREAK_START':\n uniTrack(uniEvent.AD_BREAK_START);\n break;\n case 'AD_BREAK_COMPLETE':\n uniTrack(uniEvent.AD_BREAK_COMPLETE);\n uniTrack.videoState({\n adPosition: 1,\n adBreakPosition: uniTrack.videoState().adBreakPosition + 1\n });\n break;\n case 'scteBreakStart':\n //nbcsplayer.PlayerMessageTypes.SCTE_BREAK_START\n uniTrack.videoData({\n assetId: data.assetId,\n });\n if (uniTrack.videoState().inSegment) {\n uniTrack.videoState({\n inSegment: false,\n });\n uniTrack(uniEvent.SEGMENT_END);\n }\n break;\n case 'scteBreakEnd':\n //nbcsplayer.PlayerMessageTypes.SCTE_BREAK_END\n if (uniTrack.videoState().inSegment) {\n //if start before end, end and skip next end\n uniTrack(uniEvent.SEGMENT_END);\n }\n uniTrack.videoState({\n inSegment: true,\n segmentPosition: uniTrack.videoState().segmentPosition + 1\n });\n uniTrack(uniEvent.SEGMENT_START);\n break;\n case 'scteProgramStart':\n //nbcsplayer.PlayerMessageTypes.SCTE_PROGRAM_START\n\n if (uniTrack.videoState().inSegment) {\n //if start before end, end and skip next end\n uniTrack(uniEvent.SEGMENT_END);\n }\n //set new asset after end\n uniTrack.videoData({\n assetId: data.assetId,\n });\n uniTrack.videoState({\n inSegment: true,\n segmentPosition: 1\n });\n uniTrack(uniEvent.SEGMENT_START);\n break;\n case 'scteProgramEnd':\n // nbcsplayer.PlayerMessageTypes.SCTE_PROGRAM_END\n // skip program end now, since there is no assetId to know which start an end is to, and they are out of order\n if (uniTrack.videoState().inSegment && false) { // eslint-disable-line no-constant-condition\n uniTrack.videoState({\n inSegment: false,\n });\n uniTrack(uniEvent.SEGMENT_END);\n }\n break;\n\n default:\n break;\n }\n };\n\n var subscribeUniEventsToPlaymaker = function (data) {\n if (data.iframeObj) {\n var iframe = data.iframeObj;\n //for iframe player (does not support scte)\n window.addEventListener('message', function (e) {\n var isOldMsgFormat = (e.origin === iframe.location.origin && typeof e.data === 'string' && e.data.indexOf('[embedplayer]') > -1);\n var isNewMsgFormat = (e.origin === iframe.location.origin && typeof e.data != 'string' && e.data.app === 'playmaker');\n if (isOldMsgFormat || isNewMsgFormat) {\n var eventData = isNewMsgFormat ? e.data.data : {};\n var command = isNewMsgFormat ? e.data.type : {};\n if (command === 'html5Notification') {\n command = eventData.type; //take type out first\n eventData = safeParseJSON(eventData.data);\n }\n //to support old message format\n if (isOldMsgFormat) {\n var filter = e.data.split('[embedplayer]')[1] || '';\n command = filter.split('::')[0] || '';\n eventData = safeParseJSON(filter.replace(command + '::', ''));\n }\n if (command !== 'UPDATE_TIME') {\n var logCommand = command;\n if (command === 'MEDIA_STATE_CHANGE') {\n // convert media state changes to events\n logCommand = 'MEDIA_STATE_CHANGE: ' + eventData.status;\n }\n logEvent(logCommand, { eventData: eventData, videoData: uniTrack.videoData(), videoState: uniTrack.videoState() });\n }\n\n playmakerUniBind(command, eventData);\n }\n });\n } else if (data.playerObj) {\n // subscribe to all ndp events, based on $ndp.events \"sections\"\n var playerReference = data.playerObj;\n var bindFunction = function (e) {\n var command = e.type;\n var eventData = safeParseJSON(e.data);\n if (command !== 'UPDATE_TIME') {\n var logCommand = command;\n if (command === 'MEDIA_STATE_CHANGE') {\n // convert media state changes to events\n logCommand = 'MEDIA_STATE_CHANGE: ' + eventData.status;\n }\n logEvent(logCommand, { eventData: eventData, videoData: uniTrack.videoData(), videoState: uniTrack.videoState() });\n }\n\n playmakerUniBind(command, eventData);\n };\n //window.rehtml5player.on is the object usually\n var subsEvents = ['API_CREATED', 'API_READY', 'HTML5_NOTIFICATION', 'PLAYER_READY', 'STATUS_CHANGE'];\n subsEvents.forEach(function (event) {\n if (playerReference.PlayerEvents && typeof playerReference.PlayerEvents[event] === 'string') {\n playerReference.on(playerReference.PlayerEvents[event], bindFunction);\n }\n });\n }\n };\n\n // be sure its only once per player, and 2 cases for if the player loads before this\n if ($t('playMaker_init.iframeObj') || $t('playMaker_init.playObj')) {\n subscribeUniEventsToPlaymaker($t('playMaker_init'));\n } else {\n $t('on', 'playMaker_init', function (e, data) {\n subscribeUniEventsToPlaymaker(data);\n });\n }\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL740301f51b9b4b45bed4d10bcd36d42e",name:"50 - BI Data - User Info [d:nbcnews.com, d:msnbc.com, d:telemundo.com, d:today]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"(function () {\n function getUrlParams() {\n var qParam = {};\n window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m, key, value) {\n qParam[key] = value;\n });\n return qParam;\n }\n\n var referrer = document.referrer === '' ? 'direct' : document.referrer;\n BI.userInfo.save({ 'previousPage': referrer });\n if (BI.userInfo.get('referrer') === '') {\n BI.userInfo.save({ 'referrer': referrer });\n }\n\n var cid = getUrlParams('cid');\n if (cid.cid && (BI.userInfo.get('cid') === '')) {\n var userCid = { 'cid': cid.cid };\n BI.userInfo.save(userCid);\n }\n})()",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL74fe0f5b1dfb47e493ca8668cb1ee5ea",name:"50 - GTag - ecom_click_track [d:today.com, d:nbcnews.com, regex_path]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["nbcnews.com","today.com"]},timeout:2e3},{modulePath:"core/src/lib/conditions/path.js",settings:{paths:[{value:"/shop/|/shop$",valueIsRegex:!0},{value:"/select/|/select$",valueIsRegex:!0}]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/*globals $t */\n(function () {\n var loadScript = function (script) {\n var s = document.createElement('script'),\n el = document.getElementsByTagName('script')[0];\n s.async = true;\n s.src = (document.location.protocol == 'https:' ? 'https://' : 'http://') + script;\n el.parentNode.insertBefore(s, el);\n };\n\n loadScript('www.googletagmanager.com/gtag/js?id=AW-938818781');\n\n window.dataLayer = window.dataLayer || [];\n\n function gtag() {\n window.dataLayer.push(arguments);\n }\n\n gtag('js', new Date());\n gtag('config', 'AW-938818781');\n\n var reportGtagConversion = function ({\n sendTo = null,\n value = '0.00',\n currency = 'USD',\n }) {\n if (sendTo) gtag('event', 'conversion', {\n allow_custom_scripts: true,\n send_to: sendTo,\n value,\n currency,\n });\n };\n\n // on mbt commerce button click\n $t('on', 'mbt_ecommerce_shop_button', function (_e, data) {\n reportGtagConversion({\n sendTo: 'AW-938818781/l6-KCLzlhpMYEN351L8D',\n value: data.listPrice,\n });\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL75e1a0f96bcd471daafe779450bdbb2d",name:"50 - Action - mbt_gate_click [d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals $t, s */\n(function() {\n\n function track(situation, actionContextData) {\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', situation);\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n }\n\n $t('on', 'mbt_gate_click', function(e, data) {\n const startKeyWord = 'start';\n const typeKeyWord = 'type';\n // we are formatting the string here so that the keys in the data (action, gateType) are linked together and broken up by the colon and semi-colon.\n // We remove spaces and also capitalize the keyword start in the value so that the end result might look like this: action:loginStart;gatetype:inline;\n const dataFormattedAsString = Object.keys(data).reduce((action, gateType) =>\n action.concat(gateType, ':', data[gateType], ';'), '').replace(/ /g, '').replace(startKeyWord, (match) => match.charAt(0).toUpperCase() + match.slice(1)).replace(typeKeyWord, (match) => match.charAt(0).toUpperCase() + match.slice(1));\n if (data.action === 'signup start') {\n track('gate signup click', {\n 'news.linkmoduledetail': dataFormattedAsString,\n 'news.linkmoduletype': 'mbt gate signup clicked',\n });\n } else if (data.action === 'login start') {\n track('gate login click', {\n 'news.linkmoduledetail': dataFormattedAsString,\n 'news.linkmoduletype': 'mbt gate login clicked',\n });\n }\n });\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL77a8ab02d85f451e8051daba200bbd44",name:"DR - Action - waffle_filter [d:today.com]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RCb89aaf77982841c5b71311254f7683e8-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL7bbaf482cd0747e8a6956e0d65637068",name:"DR - Action - mbt_tableofcontents_* [d:today.com, d:nbcnews.com, regex_path]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com","nbcnews.com"]},timeout:2e3},{modulePath:"core/src/lib/conditions/path.js",settings:{paths:[{value:"/shop/|/shop$",valueIsRegex:!0},{value:"/select/|/select$",valueIsRegex:!0}]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RC617ad3a43848424f8933e17cfa9d691c-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL7cc015584dd8480dbaad00171ce2476c",name:"50 - Adobe Heartbeat Library [d:msnbc.com, d:nbcnews.com, d:telemundo.com, d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,
source:'/* eslint-disable */\n/**\n * MediaSDK for JavaScript version: 3.0.2 - 2021-03-26\n * Copyright 2020 Adobe, Inc. All Rights Reserved\n * \n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *\n * More info available at https://docs.adobe.com/content/help/en/media-analytics/using/media-overview.html\n */\n\n!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).ADB=t()}(this,(function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var a=0;a0};function E(){return(new Date).getTime()}function C(e,t){if(window.console){var a;switch(e){case P.Log:a=window.console.log;break;case P.Info:a=window.console.info;break;case P.Warn:a=window.console.warn;break;case P.Error:a=window.console.error}if(a)a("MediaSDK: ["+function(){var e=new Date,t=function(e){return e<10?"00"+e:e<100?"0"+e:""+e}(e.getMilliseconds());return e.toTimeString()+"."+t}()+"] "+t)}}var M=function(t){return!S(t)&&!Array.isArray(t)&&"object"===e(t)};function w(e,t){return setInterval(e,t)}var T=!1;function O(e){var t=e.debugLogging;I(t)&&(T=t)}function R(e,t,a){(T||e===P.Error)&&C(e,t+" "+a)}function B(e){var t=b(e)?"["+e+"]":"";return{log:function(e){!function(e,t){R(P.Log,e,t)}(t,e)},info:function(e){!function(e,t){R(P.Info,e,t)}(t,e)},warn:function(e){!function(e,t){R(P.Warn,e,t)}(t,e)},error:function(e){!function(e,t){R(P.Error,e,t)}(t,e)}}}var z=Object.freeze({AnalyticsTrackingServer:"analyticstrackingserver",AnalyticsSsl:"analyticsssl",Rsid:"rsid",Vid:"vid",Aid:"aid",Mcid:"mid",McOrgId:"orgid",AamLocHint:"aamlochint",CustomerIds:"customerids",MediaTrackingServer:"mediatrackingserver",MediaChannel:"mediachannel",MediaPlayerName:"mediaplayername",MediaAppVersion:"mediaappversion",MediaSsl:"mediassl"}),j=Object.freeze({Get:"GET",Post:"POST"}),D=Object.freeze({SessionStart:"sessionStart",SessionComplete:"sessionComplete",SessionEnd:"sessionEnd",AdBreakStart:"adBreakStart",AdBreakComplete:"adBreakComplete",AdStart:"adStart",AdComplete:"adComplete",AdSkip:"adSkip",ChapterStart:"chapterStart",ChapterComplete:"chapterComplete",ChapterSkip:"chapterSkip",Play:"play",Ping:"ping",BufferStart:"bufferStart",PauseStart:"pauseStart",BitrateChange:"bitrateChange",Error:"error",StateStart:"stateStart",StateEnd:"stateEnd"}),V=Object.freeze({Show:"media.show",Season:"media.season",Episode:"media.episode",AssetId:"media.assetId",Genre:"media.genre",FirstAirDate:"media.firstAirDate",FirstDigitalDate:"media.firstDigitalDate",Rating:"media.rating",Originator:"media.originator",Network:"media.network",ShowType:"media.showType",AdLoad:"media.adLoad",MVPD:"media.pass.mvpd",Auth:"media.pass.auth",DayPart:"media.dayPart",Feed:"media.feed",StreamFormat:"media.streamFormat",Artist:"media.artist",Album:"media.album",Label:"media.label",Author:"media.author",Station:"media.station",Publisher:"media.publisher"}),q=Object.freeze({Advertiser:"media.ad.advertiser",CampaignId:"media.ad.campaignId",CreativeId:"media.ad.creativeId",SiteId:"media.ad.siteId",CreativeUrl:"media.ad.creativeURL",PlacementId:"media.ad.placementId"}),x=Object.freeze({Id:"media.id",Name:"media.name",Length:"media.length",ContentType:"media.contentType",StreamType:"media.streamType",PlayerName:"media.playerName",Resume:"media.resume",Channel:"media.channel",Publisher:"media.publisher",SdkVersion:"media.sdkVersion"}),N=Object.freeze({AppInstallationId:"appInstallationId",AnalyticsTrackingServer:"analytics.trackingServer",AnalyticsRsid:"analytics.reportSuite",AnalyticsSsl:"analytics.enableSSL",AnalyticsVisitorId:"analytics.visitorId",AnalyticsAid:"analytics.aid",VisitorMcOrgId:"visitor.marketingCloudOrgId",VisitorMcuserId:"visitor.marketingCloudUserId",VisitorAamLocHint:"visitor.aamLocationHint",VisitorCustomerIds:"visitor.customerIDs",VisitorCustomerKeyId:"id",VisitorCustomerKeyAuthState:"authState",MediaVersion:"media.libraryVersion"}),F=Object.freeze({Channel:"media.channel"}),L=Object.freeze({PodFriendlyName:"media.ad.podFriendlyName",PodIndex:"media.ad.podIndex",PodSecond:"media.ad.podSecond"}),G=Object.freeze({Name:"media.ad.name",Id:"media.ad.id",Length:"media.ad.length",PodPosition:"media.ad.podPosition",PlayerName:"media.ad.playerName"}),H=Object.freeze({FriendlyName:"media.chapter.friendlyName",Length:"media.chapter.length",Offset:"media.chapter.offset",Index:"media.chapter.index"}),Q=Object.freeze({StateName:"media.state.name"}),U=Object.freeze({Bitrate:"media.qoe.bitrate",DroppedFrames:"media.qoe.droppedFrames",Fps:"media.qoe.framesPerSecond",StartupTime:"media.qoe.timeToStart",ErrorId:"media.qoe.errorID",ErrorSource:"media.qoe.errorSource",ErrorSourcePlayer:"player",ErrorSourceExternal:"external"}),K=Object.freeze({EventType:"eventType",Params:"params",QoE:"qoeData",CustomMetadata:"customMetadata",PlayerTime:"playerTime"}),W=Object.freeze({Playhead:"playhead",Ts:"ts"}),Z=function(e){return 0===Object.keys(e).length},$=function(e){return"number"==typeof e&&!isNaN(e)},J=function(e){var t=parseInt(e,10);return $(t)&&e===t},X=function(e){return"function"==typeof e},Y=function(e,t){if(!X(e))return t;try{return e()}catch(e){return t}};function ee(e){var t={};return M(e)&&Object.keys(e).forEach((function(a){var i=e[a],r=i.id,n=i.authState,s=void 0===n?0:n;b(r)&&(t[a]={id:r,authState:s})})),t}function te(e){var t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=r({},K.EventType,e.eventType);i[K.PlayerTime]=(r(t={},W.Playhead,e.playhead),r(t,W.Ts,e.ts),t),Z(e.customMetadata)||(i[K.CustomMetadata]=e.customMetadata),Z(e.qoeData)||(i[K.QoE]=e.qoeData);var n=s({},e.params);if(e.eventType===D.SessionStart){b(a[z.AnalyticsTrackingServer])&&(n[N.AnalyticsTrackingServer]=a[z.AnalyticsTrackingServer]),b(a[z.Rsid])&&(n[N.AnalyticsRsid]=a[z.Rsid]),I(a[z.AnalyticsSsl])&&(n[N.AnalyticsSsl]=a[z.AnalyticsSsl]),b(a[z.Vid])&&(n[N.AnalyticsVisitorId]=a[z.Vid]),b(a[z.Aid])&&(n[N.AnalyticsAid]=a[z.Aid]),b(a[z.McOrgId])&&(n[N.VisitorMcOrgId]=a[z.McOrgId]),b(a[z.Mcid])&&(n[N.VisitorMcuserId]=a[z.Mcid]),J(a[z.AamLocHint])&&(n[N.VisitorAamLocHint]=a[z.AamLocHint]);var o=ee(a[z.CustomerIds]);if(M(o)&&!Z(o)&&(n[N.VisitorCustomerIds]=o),!b(n[x.Channel])){var d=a[z.MediaChannel];n[x.Channel]=b(d)?d:"unknown"}var c=a[z.MediaPlayerName];n[x.PlayerName]=b(c)?c:"unknown",b(a[z.MediaAppVersion])&&(n[x.SdkVersion]=a[z.MediaAppVersion]),n[N.MediaVersion]="js-3.0.2"}else if(e.eventType===D.AdStart){var u=a[z.MediaPlayerName];n[G.PlayerName]=b(u)?u:"unknown"}Z(n)||(i[K.Params]=n);var l=Y((function(){return JSON.stringify(i)}),"");return l}function ae(e){try{var t=e.split("/");return t[4]?t[4]:""}catch(e){return""}}var ie=[z.AnalyticsTrackingServer,z.AnalyticsSsl,z.Rsid,z.Vid,z.Aid,z.Mcid,z.McOrgId,z.AamLocHint,z.CustomerIds,z.MediaChannel,z.MediaAppVersion,z.MediaPlayerName,z.MediaTrackingServer,z.MediaSsl],re={"Content-Type":"application/json"},ne=function(){function e(a){t(this,e),this._logger=B("MediaSession("+a+")"),this._hits=[],this._ecParams=null,this._sessionId=null,this._creatingMCSession=!1,this._createSessionFailureCount=0,this._internalError=!1,this._doneQueuing=!1}return i(e,[{key:"queue",value:function(e){this._internalError||this._doneQueuing||this._hits.push(e)}},{key:"process",value:function(e){this._internalError||0!==this._hits.length&&e.isReady()&&(this._ecParams||(this._ecParams=e.resolveKeys(ie)),S(this._sessionId)?this._startMCSession():this._flushPendingHits())}},{key:"end",value:function(){this._logger.log("end"),this._doneQueuing=!0}},{key:"abort",value:function(){this._logger.log("abort"),this._doneQueuing=!0,this._hits=[]}},{key:"doneProcessing",value:function(){return this._internalError||this._doneQueuing&&0===this._hits.length}},{key:"_startMCSession",value:function(){var e=this;if(!this._creatingMCSession){var t=this._hits[0];if(t.eventType!==D.SessionStart)return this._logger.log("Dropping hit("+t.eventType+") as we expected sessionStart"),void this._hits.shift();var a,i=((a=this._ecParams)[z.MediaSsl]?"https":"http")+"://"+a[z.MediaTrackingServer]+"/api/v1/sessions",r=te(t,this._ecParams);this._creatingMCSession=!0,this._sendRequest(i,j.Post,re,r,(function(t,a){var i,r=!1;do{if(201!==t)break;var n=a.location;if(!b(n))break;if(!(i=ae(n)))break;r=!0}while(0);r?(e._logger.log("Media collection session created with session id : "+i),e._sessionId=i,e._hits.shift()):(e._logger.log("Creating Media collection session failed"),e._createSessionFailureCount+=1,e._createSessionFailureCount>=3&&(e._logger.log("Internal error: Creating Media collection session failed 3 times"),e._internalError=!0)),e._creatingMCSession=!1}))}}},{key:"_flushPendingHits",value:function(){var e=this;this._hits.splice(0,3).forEach((function(t){var a,i,r=(a=e._ecParams,i=e._sessionId,(a[z.MediaSsl]?"https":"http")+"://"+a[z.MediaTrackingServer]+"/api/v1/sessions/"+i+"/events"),n=te(t,e._ecParams);e._sendRequest(r,j.Post,re,n,(function(){}))}))}},{key:"_sendRequest",value:function(e,t,a,i,r){!function(e,t,a,i,r){if(void 0!==window.XMLHttpRequest){var n=new window.XMLHttpRequest;if("withCredentials"in n){var s=n;return s.open(t,e,!0),M(a)&&Object.keys(a).forEach((function(e){s.setRequestHeader(e,a[e])})),s.timeout=5e3,s.onload=function(){var e=s.status&&parseInt(s.status,10),t=s.responseText,a=function(e){var t={};try{e.trim().split(/[\\r\\n]+/).forEach((function(e){var a=e.split(":",1)[0],i=e.substring(a.length+2);a.length>0&&(t[a.toLowerCase()]=i)}))}catch(e){}return t}(s.getAllResponseHeaders());r(e,a,t)},s.onerror=function(){r(0)},void s.send(i)}r(0)}}(e,t,a,i,r)}}]),e}(),se=function(){function e(){t(this,e),this._logger=B("MediaProcessor"),this._isConfigured=!1,this._privacyStatus=g.OptUnknown,this._sessionIdGenerator=l(),this._sessionMap={}}return i(e,[{key:"configure",value:function(e){var t=this;this._isConfigured||(this._ecResolver=e,this._privacyStatus=this._ecResolver.getPrivacyStatus(),this._ecResolver.notifyPrivacyChange(this._onPrivacyChange.bind(this)),this._isConfigured=!0,this._processSessionTimer=w((function(){t._tick()}),500),this._logger.log("Configured with resolver"))}},{key:"startSession",value:function(){if(this._privacyStatus===g.OptOut)return this._logger.log("Privacy is opted out. Not starting a session"),-1;var t=this._sessionIdGenerator.getUniqueId();return this._sessionMap[t]=e._createMediaSession(t),t}},{key:"processHit",value:function(e,t){if(-1!==e){var a=this._sessionMap[e];S(a)||(this._logger.log("Process hit for session("+e+") => "+t),a.queue(t))}}},{key:"endSession",value:function(e){if(-1!==e){var t=this._sessionMap[e];S(t)||t.end()}}},{key:"_tick",value:function(){var e=this;Object.keys(this._sessionMap).forEach((function(t){var a=e._sessionMap[t];a.process(e._ecResolver),a.doneProcessing()&&(e._logger.log("Removing session "+t+" from store as it has finished processing"),delete e._sessionMap[t])}))}},{key:"_onPrivacyChange",value:function(e){var t=this;this._logger.log("Privacy switched to "+e),this._privacyStatus=e,e===g.OptOut&&(this._logger.log("Aborting all active sessions"),Object.keys(this._sessionMap).forEach((function(e){t._sessionMap[e].abort()})))}}],[{key:"_createMediaSession",value:function(e){return new ne(e)}}]),e}(),oe=function(){function e(a){var i=a.id,r=a.name,n=a.position,s=a.length;if(t(this,e),!b(i))throw new TypeError("id is not a valid string");if(!b(r))throw new TypeError("name is not a valid string");if(!J(n)||n<1)throw new TypeError("position should be a valid integer greater than zero");if(!$(s)||s<0)throw new TypeError("length cannot be less than zero");this.id=i,this.name=r,this.position=n,this.length=s}return i(e,[{key:"equal",value:function(t){return!S(t)&&t instanceof e&&(this.id===t.id&&this.name===t.name&&this.position===t.position&&this.length===t.length)}},{key:"serialize",value:function(){var e;return r(e={},"ad.id",this.id),r(e,"ad.name",this.name),r(e,"ad.position",this.position),r(e,"ad.length",this.length),e}}],[{key:"deserialize",value:function(t){return M(t)?Y((function(){return new e({id:t["ad.id"],name:t["ad.name"],position:t["ad.position"],length:t["ad.length"]})}),null):null}}]),e}(),de=function(){function e(a){var i=a.name,r=a.position,n=a.startTime;if(t(this,e),!b(i))throw new TypeError("name is not a valid string");if(!J(r)||r<1)throw new TypeError("position should be a valid integer greater than zero");if(!$(n)||n<0)throw new TypeError("startTime cannot be less than zero");this.name=i,this.position=r,this.startTime=n}return i(e,[{key:"equal",value:function(t){return!S(t)&&t instanceof e&&(this.name===t.name&&this.position===t.position&&this.startTime===t.startTime)}},{key:"serialize",value:function(){var e;return r(e={},"adbreak.name",this.name),r(e,"adbreak.position",this.position),r(e,"adbreak.starttime",this.startTime),e}}],[{key:"deserialize",value:function(t){return M(t)?Y((function(){return new e({name:t["adbreak.name"],position:t["adbreak.position"],startTime:t["adbreak.starttime"]})}),null):null}}]),e}(),ce=function(){function e(a){var i=a.name,r=a.position,n=a.startTime,s=a.length;if(t(this,e),!b(i))throw new TypeError("name is not a valid string");if(!J(r)||r<1)throw new TypeError("position should be a valid integer greater than zero");if(!$(n)||n<0)throw new TypeError("startTime cannot be less than zero");if(!$(s)||s<0)throw new TypeError("length cannot be less than zero");this.name=i,this.position=r,this.startTime=n,this.length=s}return i(e,[{key:"equal",value:function(t){return!S(t)&&t instanceof e&&(this.name===t.name&&this.position===t.position&&this.startTime===t.startTime&&this.length===t.length)}},{key:"serialize",value:function(){var e;return r(e={},"chapter.name",this.name),r(e,"chapter.position",this.position),r(e,"chapter.starttime",this.startTime),r(e,"chapter.length",this.length),e}}],[{key:"deserialize",value:function(t){return M(t)?Y((function(){return new e({name:t["chapter.name"],position:t["chapter.position"],startTime:t["chapter.starttime"],length:t["chapter.length"]})}),null):null}}]),e}(),ue=new RegExp("^[a-zA-Z0-9_\\\\.]{1,64}$"),le=function(){function e(a){var i=a.name;if(t(this,e),!b(i))throw new TypeError("name is not a valid string");if(!ue.test(i))throw new TypeError("name should match \'^[a-zA-Z0-9_\\\\.]{1,64}$\' pattern");this.name=i}return i(e,[{key:"equal",value:function(t){return!S(t)&&t instanceof e&&this.name===t.name}},{key:"serialize",value:function(){return r({},"customstate.name",this.name)}}],[{key:"deserialize",value:function(t){return M(t)?Y((function(){return new e({name:t["customstate.name"]})}),null):null}}]),e}(),he=function(){function e(a){var i=a.id,r=a.name,n=a.streamType,s=a.mediaType,o=a.length,d=a.resumed,c=a.prerollWaitTime,u=a.granularAdTracking;if(t(this,e),!b(i))throw new TypeError("id is not a valid string");if(!b(r))throw new TypeError("name is not a valid string");if(!b(n))throw new TypeError("streamType is not a valid string");if(!$(o)||o<0)throw new TypeError("length cannot be less than zero");this.id=i,this.name=r,this.streamType=n,this.mediaType=s!==p.Audio?p.Video:s,this.length=o,this.resumed=!!I(d)&&d,this.prerollWaitTime=!J(c)||c<0?250:c,this.granularAdTracking=!!I(u)&&u}return i(e,[{key:"equal",value:function(t){return!S(t)&&t instanceof e&&(this.id===t.id&&this.name===t.name&&this.streamType===t.streamType&&this.mediaType===t.mediaType&&this.length===t.length&&this.resumed===t.resumed&&this.prerollWaitTime===t.prerollWaitTime&&this.granularAdTracking===t.granularAdTracking)}},{key:"serialize",value:function(){var e;return r(e={},"media.id",this.id),r(e,"media.name",this.name),r(e,"media.streamtype",this.streamType),r(e,"media.type",this.mediaType),r(e,"media.length",this.length),r(e,"media.resumed",this.resumed),r(e,"media.prerollwaittime",this.prerollWaitTime),r(e,"media.granularadtracking",this.granularAdTracking),e}}],[{key:"deserialize",value:function(t){return M(t)?Y((function(){return new e({id:t["media.id"],name:t["media.name"],streamType:t["media.streamtype"],mediaType:t["media.type"],length:t["media.length"],resumed:t["media.resumed"],prerollWaitTime:t["media.prerollwaittime"],granularAdTracking:t["media.granularadtracking"]})}),null):null}}]),e}(),fe=function(){function e(a){var i=a.bitrate,r=a.droppedFrames,n=a.fps,s=a.startupTime;if(t(this,e),!$(i)||i<0)throw new TypeError("bitrate must not be less than zero");if(!$(r)||r<0)throw new TypeError("dropped frames must not be less than zero");if(!$(n)||n<0)throw new TypeError("fps must not be less than zero");if(!$(s)||s<0)throw new TypeError("startupTime must not be less than zero");this.bitrate=i,this.droppedFrames=r,this.fps=n,this.startupTime=s}return i(e,[{key:"equal",value:function(t){return!S(t)&&t instanceof e&&(this.bitrate===t.bitrate&&this.droppedFrames===t.droppedFrames&&this.fps===t.fps&&this.startupTime===t.startupTime)}},{key:"serialize",value:function(){var e;return r(e={},"qoe.bitrate",this.bitrate),r(e,"qoe.droppedframes",this.droppedFrames),r(e,"qoe.fps",this.fps),r(e,"qoe.startuptime",this.startupTime),e}}],[{key:"deserialize",value:function(t){return M(t)?Y((function(){return new e({bitrate:t["qoe.bitrate"],droppedFrames:t["qoe.droppedframes"],fps:t["qoe.fps"],startupTime:t["qoe.startuptime"]})}),null):null}}]),e}(),pe=B("Media");var me=function(e){try{return JSON.stringify(e,null,4)}catch(e){return"[Error formatting object]"}},_e=Object.freeze({Name:"event.name",Params:"event.params",Metadata:"event.metadata",TimeStamp:"event.ts",InternalEvent:"event.internal",Playhead:"event.playhead",ErrorId:"error.id"}),ve=Object.freeze(s({SessionStart:"sessionStart",SessionEnd:"sessionEnd",SessionComplete:"sessionComplete",Play:"play",Pause:"pause",Error:"error",QoEUpdate:"qoeUpdate",PlayheadUpdate:"playheadUpdate"},h)),ke=function(){function e(a,i){if(t(this,e),S(a))throw new Error("id is not valid");this.id=a,this.description=i,this.predicates=[],this.actions=[]}return i(e,[{key:"addPredicate",value:function(e,t,a){if(!X(e))throw new Error("predicate is not a function");return this.predicates.push({predicate:e,val:t,message:a}),this}},{key:"addAction",value:function(e){if(!X(e))throw new Error("action is not a function");return this.actions.push(e),this}},{key:"runPredicates",value:function(e){for(var t=0;t=this._interval&&(this._generateHit(D.Ping),this._previousStateTs=this._refTs)}}},{key:"_processMediaStart",value:function(t){var a={};a=e._extractMediaParams(this._media),t&&(a[x.Resume]=!0);var i=this._config[F.Channel];b(i)&&(a[F.Channel]=i);var r=e._extractMediaMetadata(this._media);this._generateHit(D.SessionStart,a,r)}},{key:"_generateHit",value:function(t){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,n=r;if(S(n)){var s=this._media.qoeInfo,o=!(S(s)||!S(this._lastQoeInfo)&&this._lastQoeInfo.equal(s));o&&(n=e._extractQoeData(this._media),this._lastQoeInfo=s)}if(this._isTracking){var d=this._media.playhead,c=this._refTs,u=new Pe({eventType:t,params:a,customMetadata:i,qoeData:n,playhead:d,ts:c});this._hitProcessor.processHit(this._sessionId,u)}else this._logger.log("#_generateHit - Dropping hit as we have internally stopped tracking the session")}},{key:"_getPlaybackState",value:function(){return this._media.isInPlaybackState(ge.Buffer)?ge.Buffer:this._media.isInPlaybackState(ge.Seek)?ge.Seek:this._media.isInPlaybackState(ge.Play)?ge.Play:this._media.isInPlaybackState(ge.Pause)?ge.Pause:this._media.isInPlaybackState(ge.Stall)?ge.Stall:ge.Init}},{key:"_startSession",value:function(){this._sessionId=this._hitProcessor.startSession(),this._isTracking=!0,this._logger.log("Start internal session("+this._sessionId+")")}},{key:"_endSession",value:function(){this._hitProcessor.endSession(this._sessionId),this._isTracking=!1,this._logger.log("End internal session("+this._sessionId+")")}}],[{key:"_isGranularAdTrackingEnabled",value:function(e){var t=e.mediaInfo;return!S(t)&&t.granularAdTracking}},{key:"_extractMediaParams",value:function(t){var a={},i=t.mediaInfo;S(i)||(a[x.Id]=i.id,a[x.Name]=i.name,a[x.Length]=i.length,a[x.ContentType]=i.streamType,a[x.StreamType]=i.mediaType,a[x.Resume]=i.resumed);var r=t.mediaMetadata;return M(r)&&Object.keys(r).forEach((function(t){if(e._standardMediaMetadataMap.has(t)){var i=e._standardMediaMetadataMap.get(t);a[i]=r[t]}})),a}},{key:"_extractMediaMetadata",value:function(t){var a={},i=t.mediaMetadata;return M(i)&&Object.keys(i).forEach((function(t){e._standardMediaMetadataMap.has(t)||(a[t]=i[t])})),a}},{key:"_extractAdBreakParams",value:function(e){var t={},a=e.adBreakInfo;return S(a)||(t[L.PodFriendlyName]=a.name,t[L.PodIndex]=a.position,t[L.PodSecond]=a.startTime),t}},{key:"_extractAdParams",value:function(t){var a={},i=t.adInfo;S(i)||(a[G.Name]=i.name,a[G.Id]=i.id,a[G.Length]=i.length,a[G.PodPosition]=i.position);var r=t.adMetadata;return M(r)&&Object.keys(r).forEach((function(t){if(e._standardAdMetadataMap.has(t)){var i=e._standardAdMetadataMap.get(t);a[i]=r[t]}})),a}},{key:"_extractAdMetadata",value:function(t){var a={},i=t.adMetadata;return M(i)&&Object.keys(i).forEach((function(t){e._standardAdMetadataMap.has(t)||(a[t]=i[t])})),a}},{key:"_extractChapterParams",value:function(e){var t={},a=e.chapterInfo;return S(a)||(t[H.FriendlyName]=a.name,t[H.Index]=a.position,t[H.Length]=a.length,t[H.Offset]=a.startTime),t}},{key:"_extractChapterMetadata",value:function(e){var t={},a=e.chapterMetadata;return M(a)&&Object.keys(a).forEach((function(e){t[e]=a[e]})),t}},{key:"_extractQoeData",value:function(e){var t={},a=e.qoeInfo;return M(a)&&(t[U.Bitrate]=parseInt(a.bitrate,10),t[U.Fps]=parseInt(a.fps,10),t[U.DroppedFrames]=parseInt(a.droppedFrames,10),t[U.StartupTime]=parseInt(a.startupTime,10)),t}},{key:"_playbackStateToMediaCollectionEvent",value:function(e){switch(e){case ge.Buffer:return D.BufferStart;case ge.Seek:return D.PauseStart;case ge.Play:return D.Play;case ge.Pause:return D.PauseStart;case ge.Stall:return D.Play;case ge.Init:return D.Ping;default:return""}}}]),e}(),Ae=new Map;Ae.set(_.Show,V.Show),Ae.set(_.Season,V.Season),Ae.set(_.Episode,V.Episode),Ae.set(_.AssetId,V.AssetId),Ae.set(_.Genre,V.Genre),Ae.set(_.FirstAirDate,V.FirstAirDate),Ae.set(_.FirstDigitalDate,V.FirstDigitalDate),Ae.set(_.Rating,V.Rating),Ae.set(_.Originator,V.Originator),Ae.set(_.Network,V.Network),Ae.set(_.ShowType,V.ShowType),Ae.set(_.AdLoad,V.AdLoad),Ae.set(_.MVPD,V.MVPD),Ae.set(_.Authorized,V.Auth),Ae.set(_.DayPart,V.DayPart),Ae.set(_.Feed,V.Feed),Ae.set(_.StreamFormat,V.StreamFormat),Ae.set(v.Artist,V.Artist),Ae.set(v.Album,V.Album),Ae.set(v.Label,V.Label),Ae.set(v.Author,V.Author),Ae.set(v.Station,V.Station),Ae.set(v.Publisher,V.Publisher),Ie._standardMediaMetadataMap=Ae;var be=new Map;be.set(k.Advertiser,q.Advertiser),be.set(k.CampaignId,q.CampaignId),be.set(k.CreativeId,q.CreativeId),be.set(k.PlacementId,q.PlacementId),be.set(k.SiteId,q.SiteId),be.set(k.CreativeUrl,q.CreativeUrl),Ie._standardAdMetadataMap=be;var Ee="Media tracker is not in active tracking session, call \'API:trackSessionStart\' to begin a new tracking session.",Ce="Media tracker is in active tracking session, call \'API:trackSessionEnd\' or \'API:trackComplete\' to end current tracking session.",Me="Media tracker is tracking buffer events, call \'API:trackEvent(BufferComplete)\' first to stop tracking buffer events.",we="Media tracker is not tracking buffer events, call \'API:trackEvent(BufferStart)\' before \'API:trackEvent(BufferComplete)\'.",Te="Media tracker is tracking seek events, call \'API:trackEvent(SeekComplete)\' first to stop tracking seek events.",Oe="Media tracker is not tracking seek events, call \'API:trackEvent(SeekStart)\' before \'API:trackEvent(SeekComplete)\'.",Re="Media tracker is not tracking any AdBreak, call \'API:trackEvent(AdBreakStart)\' to begin tracking AdBreak",Be="Media tracker is not tracking any Ad, call \'API:trackEvent(AdStart)\' to begin tracking Ad",ze="Media tracker is not tracking any Chapter, call \'API:trackEvent(ChapterStart)\' to begin tracking Chapter",je="MediaInfo passed into \'API:trackSessionStart\' is invalid.",De="AdBreakInfo passed into \'API:trackEvent(AdBreakStart)\' is invalid.",Ve="Media tracker is currently tracking the AdBreak passed into \'API:trackEvent(AdBreakStart)\'.",qe="AdInfo passed into \'API:trackEvent(AdStart)\' is invalid.",xe="StateInfo passed into \'API:trackEvent(StateStart|StateEnd)\' is invalid.",Ne="ErrorId passed into \'API:trackError()\' is invalid.",Fe="Media tracker is currently tracking the Ad passed into \'API:trackEvent(AdStart)\'.",Le="ChapterInfo passed into \'API:trackEvent(ChapterStart)\' is invalid.",Ge="Media tracker is currently tracking the Chapter passed into \'API:trackEvent(ChapterStart)\'.",He="QoEInfo passed into \'API:updateQoEInfo\' is invalid.",Qe="Media tracker is tracking an AdBreak but not tracking any Ad and will drop any calls to track player state (Play, Pause, Buffer or Seek) in this state.",Ue="Media tracker is already tracking a state with the same state name.",Ke="Media tracker is not already tracking a state with the same state name.",We="Media tracker has reached maximum number of states per session (10).",Ze=new RegExp("^[a-zA-Z0-9_\\\\.]+$"),$e=function(){function e(a,i,r){if(t(this,e),!a)throw new Error("hitProcessor should be valid");if(!i)throw new Error("logger should be valid");this._hitProcessor=a,this._logger=i,this._config=M(r)?r:{},this._resetStates(),this._setupRules()}return i(e,[{key:"track",value:function(e){var t=e[_e.Name];return b(t)?J(e[_e.TimeStamp])?(M(e[_e.Params])||(e[_e.Params]={}),e[_e.Metadata]=this._cleanMetadata(e[_e.Metadata]),!!this._prerollDeferRule(t,e)||this._processRule(t,e)):(this._logger.log("#track - Event timestamp is missing in track event data. - "+t),!1):(this._logger.log("#track - Event name is missing in track event data"),!1)}},{key:"_resetStates",value:function(){this._media=null,this._hitGenerator=null,this._sessionRefTs=null,this._inPrerollInterval=!1,this._prerollRefTs=null,this._prerollQueuedRules=[],this._contentStarted=!1,this._contentStartRefTs=null,this._mediaIdle=!1,this._trackerIdle=!1,this._mediaIdleStartTs=0}},{key:"_createHitGenerator",value:function(e){return new Ie(this._logger,this._hitProcessor,this._config,this._media,e)}},{key:"_processRule",value:function(e,t){return this._ruleEngine.processRule(e,t).success}},{key:"_setupRules",value:function(){this._ruleEngine=new ye(this._logger),this._ruleEngine.setEnterAction(this._cmdEnterAction.bind(this)),this._ruleEngine.setExitAction(this._cmdExitAction.bind(this));var e=this._isInMedia.bind(this),t=this._isInAdBreak.bind(this),a=this._isInAd.bind(this),i=this._isInChapter.bind(this),r=this._isInTrackedState.bind(this),n=this._isValidMediaInfo.bind(this),s=this._isValidAdBreakInfo.bind(this),o=this._isValidAdInfo.bind(this),d=this._isValidChapterInfo.bind(this),c=this._isValidQoEInfo.bind(this),u=this._isValidStateInfo.bind(this),l=this._isValidErrorInfo.bind(this),h=this._isDifferentAdBreakInfo.bind(this),f=this._isDifferentAdInfo.bind(this),p=this._isDifferentChapterInfo.bind(this),m=this._allowPlayerStateChange.bind(this),_=this._allowStateTrack.bind(this),v=this._isInBuffering.bind(this),k=this._isInSeeking.bind(this),y=this._cmdMediaStart.bind(this),g=this._cmdMediaSkip.bind(this),S=this._cmdMediaComplete.bind(this),P=this._cmdError.bind(this),I=this._cmdPlay.bind(this),A=this._cmdPause.bind(this),b=this._cmdBufferStart.bind(this),E=this._cmdBufferComplete.bind(this),C=this._cmdSeekStart.bind(this),M=this._cmdSeekComplete.bind(this),w=this._cmdAdStart.bind(this),T=this._cmdAdComplete.bind(this),O=this._cmdAdSkip.bind(this),R=this._cmdAdBreakStart.bind(this),B=this._cmdAdBreakComplete.bind(this),z=this._cmdAdBreakSkip.bind(this),j=this._cmdChapterStart.bind(this),D=this._cmdChapterComplete.bind(this),V=this._cmdChapterSkip.bind(this),q=this._cmdStateStart.bind(this),x=this._cmdStateEnd.bind(this),N=this._cmdBitrateChange.bind(this),F=this._cmdQoEUpdate.bind(this),L=this._cmdPlayheadUpdate.bind(this),G=new ke(ve.SessionStart,"API:trackSessionStart");G.addPredicate(e,!1,Ce).addPredicate(n,!0,je).addAction(y),this._ruleEngine.addRule(G);var H=new ke(ve.SessionComplete,"API:trackComplete");H.addPredicate(e,!0,Ee).addAction(O).addAction(z).addAction(V).addAction(S),this._ruleEngine.addRule(H);var Q=new ke(ve.SessionEnd,"API:trackSessionEnd");Q.addPredicate(e,!0,Ee).addAction(O).addAction(z).addAction(V).addAction(g),this._ruleEngine.addRule(Q);var U=new ke(ve.Error,"API:trackError");U.addPredicate(e,!0,Ee).addPredicate(l,!0,Ne).addAction(P),this._ruleEngine.addRule(U);var K=new ke(ve.Play,"API:trackPlay");K.addPredicate(e,!0,Ee).addPredicate(m,!0,Qe).addAction(M).addAction(E).addAction(I),this._ruleEngine.addRule(K);var W=new ke(ve.Pause,"API:trackPause");W.addPredicate(e,!0,Ee).addPredicate(m,!0,Qe).addPredicate(v,!1,Me).addPredicate(k,!1,Te).addAction(A),this._ruleEngine.addRule(W);var Z=new ke(ve.BufferStart,"API:trackEvent(BufferStart)");Z.addPredicate(e,!0,Ee).addPredicate(m,!0,Qe).addPredicate(v,!1,Me).addPredicate(k,!1,Te).addAction(b),this._ruleEngine.addRule(Z);var $=new ke(ve.BufferComplete,"API:trackEvent(BufferComplete)");$.addPredicate(e,!0,Ee).addPredicate(m,!0,Qe).addPredicate(v,!0,we).addAction(E),this._ruleEngine.addRule($);var J=new ke(ve.SeekStart,"API:trackEvent(SeekStart)");J.addPredicate(e,!0,Ee).addPredicate(m,!0,Qe).addPredicate(k,!1,Te).addPredicate(v,!1,Me).addAction(C),this._ruleEngine.addRule(J);var X=new ke(ve.SeekComplete,"API:trackEvent(SeekComplete)");X.addPredicate(e,!0,Ee).addPredicate(m,!0,Qe).addPredicate(k,!0,Oe).addAction(M),this._ruleEngine.addRule(X);var Y=new ke(ve.AdBreakStart,"API:trackEvent(AdBreakStart)");Y.addPredicate(e,!0,Ee).addPredicate(s,!0,De).addPredicate(h,!0,Ve).addAction(O).addAction(z).addAction(R),this._ruleEngine.addRule(Y);var ee=new ke(ve.AdBreakComplete,"API:trackEvent(AdBreakComplete)");ee.addPredicate(e,!0,Ee).addPredicate(t,!0,Re).addAction(O).addAction(B),this._ruleEngine.addRule(ee);var te=new ke(ve.AdStart,"API:trackEvent(AdStart)");te.addPredicate(e,!0,Ee).addPredicate(t,!0,Re).addPredicate(o,!0,qe).addPredicate(f,!0,Fe).addAction(O).addAction(w),this._ruleEngine.addRule(te);var ae=new ke(ve.AdComplete,"API:trackEvent(AdComplete)");ae.addPredicate(e,!0,Ee).addPredicate(t,!0,Re).addPredicate(a,!0,Be).addAction(T),this._ruleEngine.addRule(ae);var ie=new ke(ve.AdSkip,"API:trackEvent(AdSkip)");ie.addPredicate(e,!0,Ee).addPredicate(t,!0,Re).addPredicate(a,!0,Be).addAction(O),this._ruleEngine.addRule(ie);var re=new ke(ve.ChapterStart,"API::trackEvent(chapterStart)");re.addPredicate(e,!0,Ee).addPredicate(d,!0,Le).addPredicate(p,!0,Ge).addAction(V).addAction(j),this._ruleEngine.addRule(re);var ne=new ke(ve.ChapterComplete,"API::trackEvent(chapterComplete)");ne.addPredicate(e,!0,Ee).addPredicate(i,!0,ze).addAction(D),this._ruleEngine.addRule(ne);var se=new ke(ve.ChapterSkip,"API:trackEvent(chapterSkip)");se.addPredicate(e,!0,Ee).addPredicate(i,!0,ze).addAction(V),this._ruleEngine.addRule(se);var oe=new ke(ve.BitrateChange,"API:trackEvent(BitrateChange)");oe.addPredicate(e,!0,Ee).addAction(N),this._ruleEngine.addRule(oe);var de=new ke(ve.QoEUpdate,"API:trackEvent(QoEUpdate)");de.addPredicate(e,!0,Ee).addPredicate(c,!0,He).addAction(F),this._ruleEngine.addRule(de);var ce=new ke(ve.PlayheadUpdate,"API:trackEvent(PlayheadUpdate)");ce.addPredicate(e,!0,Ee).addAction(L),this._ruleEngine.addRule(ce);var ue=new ke(ve.StateStart,"API:trackEvent(StateStart)");ue.addPredicate(e,!0,Ee).addPredicate(u,!0,xe).addPredicate(r,!1,Ue).addPredicate(_,!0,We).addAction(q),this._ruleEngine.addRule(ue);var le=new ke(ve.StateEnd,"API:trackEvent(StateEnd)");le.addPredicate(e,!0,Ee).addPredicate(u,!0,xe).addPredicate(r,!0,Ke).addAction(x),this._ruleEngine.addRule(le)}},{key:"_isInMedia",value:function(){return!S(this._media)}},{key:"_isInAdBreak",value:function(){return this._media.isInAdBreak}},{key:"_isInAd",value:function(){return this._media.isInAd}},{key:"_isInChapter",value:function(){return this._media.isInChapter}},{key:"_isInBuffering",value:function(){return this._media.isInPlaybackState(ge.Buffer)}},{key:"_isInSeeking",value:function(){return this._media.isInPlaybackState(ge.Seek)}},{key:"_isInTrackedState",value:function(e){var t=le.deserialize(e[_e.Params]);return this._media.isCustomStateActive(t)}},{key:"_isValidMediaInfo",value:function(e){return null!=he.deserialize(e[_e.Params])}},{key:"_isValidAdBreakInfo",value:function(e){return null!=de.deserialize(e[_e.Params])}},{key:"_isValidAdInfo",value:function(e){return null!=oe.deserialize(e[_e.Params])}},{key:"_isValidStateInfo",value:function(e){return null!=le.deserialize(e[_e.Params])}},{key:"_isValidChapterInfo",value:function(e){return null!=ce.deserialize(e[_e.Params])}},{key:"_isValidQoEInfo",value:function(e){return null!=fe.deserialize(e[_e.Params])}},{key:"_isValidErrorInfo",value:function(e){var t=e[_e.Params];if(!M(t))return!1;var a=t[_e.ErrorId];return b(a)}},{key:"_isDifferentAdBreakInfo",value:function(e){return!de.deserialize(e[_e.Params]).equal(this._media.adBreakInfo)}},{key:"_isDifferentAdInfo",value:function(e){return!oe.deserialize(e[_e.Params]).equal(this._media.adInfo)}},{key:"_isDifferentChapterInfo",value:function(e){return!ce.deserialize(e[_e.Params]).equal(this._media.chapterInfo)}},{key:"_allowPlayerStateChange",value:function(){return!this._media.isInAdBreak||this._media.isInAd}},{key:"_allowStateTrack",value:function(e){var t=le.deserialize(e[_e.Params]);return this._media.hasTrackedCustomState(t)||this._media.numTrackedCustomStates()<10}},{key:"_cmdEnterAction",value:function(e,t){var a=this._getRefTs(t);return S(this._hitGenerator)||this._hitGenerator.setRefTS(a),!0}},{key:"_cmdExitAction",value:function(e,t){if(S(this._media))return!1;e.id===ve.AdStart&&(!this._media.isInPlaybackState(ge.Init)||this._media.isInPlaybackState(ge.Buffer)||this._media.isInPlaybackState(ge.Seek)||this._media.enterPlaybackState(ge.Play)),e.id!==ve.BufferComplete&&e.id!==ve.SeekComplete||this._media.isInPlaybackState(ge.Init)&&this._media.enterPlaybackState(ge.Pause),this._cmdIdleDetection(t),this._cmdSessionTimeoutDetection(t),this._cmdContentStartDetection(t);var a=e.id===ve.AdStart||e.id===ve.AdBreakComplete;return this._hitGenerator.processPlayback(a),!0}},{key:"_cmdMediaStart",value:function(e){var t=he.deserialize(e[_e.Params]),a=e[_e.Metadata],i=this._getRefTs(e);return this._media=new Se(t,a),this._hitGenerator=this._createHitGenerator(i),this._hitGenerator.processMediaStart(),this._sessionRefTs=i,this._inPrerollInterval=0!==t.prerollWaitTime,this._prerollRefTs=i,!0}},{key:"_cmdMediaComplete",value:function(){return this._hitGenerator.processMediaComplete(),this._resetStates(),!0}},{key:"_cmdMediaSkip",value:function(){return this._hitGenerator.processMediaSkip(),this._resetStates(),!0}},{key:"_cmdAdBreakStart",value:function(e){var t=de.deserialize(e[_e.Params]);return this._media.setAdBreakInfo(t),this._hitGenerator.processAdBreakStart(),!0}},{key:"_cmdAdBreakComplete",value:function(){return this._hitGenerator.processAdBreakComplete(),this._media.clearAdBreakInfo(),!0}},{key:"_cmdAdBreakSkip",value:function(){return this._media.isInAdBreak&&(this._hitGenerator.processAdBreakSkip(),this._media.clearAdBreakInfo()),!0}},{key:"_cmdAdStart",value:function(e){var t=oe.deserialize(e[_e.Params]),a=e[_e.Metadata];return this._media.setAdInfo(t,a),this._hitGenerator.processAdStart(),!0}},{key:"_cmdAdComplete",value:function(){return this._hitGenerator.processAdComplete(),this._media.clearAdInfo(),!0}},{key:"_cmdAdSkip",value:function(){return this._media.isInAd&&(this._hitGenerator.processAdSkip(),this._media.clearAdInfo()),!0}},{key:"_cmdChapterStart",value:function(e){var t=ce.deserialize(e[_e.Params]),a=e[_e.Metadata];return this._media.setChapterInfo(t,a),this._hitGenerator.processChapterStart(),!0}},{key:"_cmdChapterComplete",value:function(){return this._hitGenerator.processChapterComplete(),this._media.clearChapterInfo(),!0}},{key:"_cmdChapterSkip",value:function(){return this._media.isInChapter&&(this._hitGenerator.processChapterSkip(),this._media.clearChapterInfo()),!0}},{key:"_cmdError",value:function(e){var t=e[_e.Params][_e.ErrorId];return this._hitGenerator.processError(t),!0}},{key:"_cmdBitrateChange",value:function(){return this._hitGenerator.processBitrateChange(),!0}},{key:"_cmdPlay",value:function(){return this._media.enterPlaybackState(ge.Play),!0}},{key:"_cmdPause",value:function(){return this._media.enterPlaybackState(ge.Pause),!0}},{key:"_cmdBufferStart",value:function(){return this._media.enterPlaybackState(ge.Buffer),!0}},{key:"_cmdBufferComplete",value:function(){return this._media.isInPlaybackState(ge.Buffer)&&this._media.exitPlaybackState(ge.Buffer),!0}},{key:"_cmdSeekStart",value:function(){return this._media.enterPlaybackState(ge.Seek),!0}},{key:"_cmdSeekComplete",value:function(){return this._media.isInPlaybackState(ge.Seek)&&this._media.exitPlaybackState(ge.Seek),!0}},{key:"_cmdQoEUpdate",value:function(e){var t=fe.deserialize(e[_e.Params]);return this._media.qoeInfo=t,!0}},{key:"_cmdPlayheadUpdate",value:function(e){var t=e[_e.Params];if(M(t)){var a=t[_e.Playhead];$(a)&&a>=0&&(this._media.playhead=a)}return!0}},{key:"_cmdIdleDetection",value:function(e){var t=this._getRefTs(e);this._media.isIdle()?this._mediaIdle?!this._trackerIdle&&t-this._mediaIdleStartTs>=18e5&&(this._hitGenerator.processSessionAbort(),this._trackerIdle=!0):(this._mediaIdle=!0,this._mediaIdleStartTs=t):(this._trackerIdle&&(this._hitGenerator.processSessionRestart(),this._trackerIdle=!1,this._sessionRefTs=t,this._contentStarted=!1,this._contentStartRefTs=null),this._mediaIdle=!1)}},{key:"_cmdSessionTimeoutDetection",value:function(e){var t=this._getRefTs(e);!this._trackerIdle&&t-this._sessionRefTs>=864e5&&(this._hitGenerator.processSessionAbort(),this._hitGenerator.processSessionRestart(),this._sessionRefTs=t,this._contentStarted=!1,this._contentStartRefTs=null)}},{key:"_cmdContentStartDetection",value:function(e){return!(!this._media.isIdle()&&!this._contentStarted)||(this._media.isInAdBreak?(this._contentStartRefTs=null,!0):(null==this._contentStartRefTs&&(this._contentStartRefTs=this._getRefTs(e)),this._getRefTs(e)-this._contentStartRefTs>=1e3&&(this._hitGenerator.processPlayback(!0),this._contentStarted=!0),!0))}},{key:"_cmdStateStart",value:function(e){var t=le.deserialize(e[_e.Params]);return this._media.startCustomState(t),this._hitGenerator.processCustomStateStart(t),!0}},{key:"_cmdStateEnd",value:function(e){var t=le.deserialize(e[_e.Params]);return this._media.endCustomState(t),this._hitGenerator.processCustomStateEnd(t),!0}},{key:"_getRefTs",value:function(e){var t=e[_e.TimeStamp];return J(t)?t:null}},{key:"_prerollDeferRule",value:function(e,t){if(this._inPrerollInterval&&null!=this._media){var a=this._media.mediaInfo.prerollWaitTime;if(this._prerollQueuedRules.push({eventName:e,context:t}),this._getRefTs(t)-this._prerollRefTs>=a||e===ve.AdBreakStart||e===ve.MediaComplete||e===ve.MediaSkip){for(var i=this._prerollReorderRules(this._prerollQueuedRules),r=0;r3&&void 0!==arguments[3]&&arguments[3];if(this._tracker){var s=E(),o=(r(i={},_e.Name,e),r(i,_e.Params,t),r(i,_e.Metadata,a),r(i,_e.TimeStamp,s),r(i,_e.InternalEvent,n),i),d=this._tracker.track(o);this._lastEventTS=s,e===ve.PlayheadUpdate&&(this._lastPlayheadParams=t),e===ve.SessionStart&&d?this._startTimer():e!==ve.SessionComplete&&e!==ve.SessionEnd||this._stopTimer()}else this._logger.warn("Dropping the call as the tracker instance is already destroyed")}},{key:"_startTimer",value:function(){var e=this;this._timer||(this._timer=w((function(){e._onTick()}),500))}},{key:"_stopTimer",value:function(){var e;this._timer&&(e=this._timer,clearInterval(e),this._timer=null)}},{key:"_onTick",value:function(){E()-this._lastEventTS>750&&this._trackInternal(ve.PlayheadUpdate,this._lastPlayheadParams,null,!0)}}]),e}(),Xe=new se,Ye=l();var et={configure:function(e){Xe.configure(e)},getInstance:function(e){var t="tracker"+Ye.getUniqueId();return new Je(Xe,t,e)},createMediaObject:function(e,t,a,i,r){var n=null;try{n=new he({id:t,name:e,streamType:i,mediaType:r,length:a}).serialize()}catch(e){pe.error("Error creating MediaObject ("+e.message+")")}return n},createAdBreakObject:function(e,t,a){var i=null;try{i=new de({name:e,position:t,startTime:a}).serialize()}catch(e){pe.error("Error creating AdBreakObject ("+e.message+")")}return i},createAdObject:function(e,t,a,i){var r=null;try{r=new oe({id:t,name:e,position:a,length:i}).serialize()}catch(e){pe.error("Error creating AdObject ("+e.message+")")}return r},createChapterObject:function(e,t,a,i){var r=null;try{r=new ce({name:e,position:t,length:a,startTime:i}).serialize()}catch(e){pe.error("Error creating ChapterObject ("+e.message+")")}return r},createQoEObject:function(e,t,a,i){var r=null;try{r=new fe({bitrate:e,droppedFrames:i,fps:a,startupTime:t}).serialize()}catch(e){pe.error("Error creating QoEObject ("+e.message+")")}return r},createStateObject:function(e){var t=null;try{t=new le({name:e}).serialize()}catch(e){pe.error("Error creating StateObject ("+e.message+")")}return t},version:"js-3.0.2",Event:h,MediaType:p,PlayerState:m,StreamType:y,MediaObjectKey:f,VideoMetadataKeys:_,AudioMetadataKeys:v,AdMetadataKeys:k};var tt="ecid",at="analytics",it="mediaanalytics",rt=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(s,e);var a,n=(a=s,function(){var e,t=o(a);if(c()){var i=o(this).constructor;e=Reflect.construct(t,arguments,i)}else e=t.apply(this,arguments);return u(this,e)});function s(e,a){var i;if(t(this,s),i=n.call(this),!e)throw new Error("Valid appmeasurement instance is required");if(!e.visitor)throw new Error("Valid visitor instance is required");return i._mediaConfig=a,i._appMeasurement=e,i._appMeasurementReady=!1,i._privacyResolved=!1,i._logger=B("WebECResolver"),i._fetchECParams(),i._fetchPrivacyStatus(),i._setupResolver(),i}return i(s,[{key:"resolveKeys",value:function(e){if(!e||0===e.length)return{};for(var t={},a=0;a\n resolved.concat(item, ':', data[item], ';'), '');\n\n track('ecommerce shop button click', {\n 'news.linkmoduledetail': dataFormattedAsString,\n 'news.linkmoduletype': 'Ecommerce shop button clicked',\n });\n }\n });\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL7fb29d3005d24edcadb49d6a5232d37b",name:"Ads - Pressboard tag [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals $t, pbq */\n(function () {\n var ranPressboard = false;\n $t('on', 'dtm_pageView', function (e, data) {\n var pageIndex = $t(e.type + '.index', '0');\n var trackView = data.trackView !== false; //this will default all to true if not false\n\n // Checking the two data properties that would indicate that the article is sponsored.\n var hasSponsor = Boolean($t(`jsonLd.Dataset.${pageIndex}.sponsor`, false));\n var subSection = $t(`jsonLd.Dataset.${pageIndex}.subSection`, null);\n var isSponsored = hasSponsor || 'contenido-patrocinado' === subSection;\n\n \n if (isSponsored && trackView && !ranPressboard) {\n // add div after content (had to delay for content redraw)\n setTimeout(function () {\n var articleNode = document.getElementsByTagName('article')[0];\n if (articleNode) {\n var trackingNode = document.createElement('div');\n trackingNode.id = 'pressboard-ad-sponsorship-msg';\n articleNode.parentNode.insertBefore(trackingNode, articleNode.nextSibling);\n }\n }, 300);\n \n // Loading the pressboard JavaScript SDK\n !function(p,r,e,s,b,d){p.pbq||(s=p.pbq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments);},s.version='1.0',s.queue=[],b=r.createElement(e),b.async=!0,b.src='https://sr.studiostack.com/v3/services',d=r.getElementsByTagName(e)[0],d.parentNode.insertBefore(b,d));}(window,document,'script');\n pbq('init', '250721');\n pbq('set', 'story');\n \n ranPressboard = true;\n }\n });\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL7fb891eb5dfb47b69e7a815955035f13",name:"70 - PageView - passThrough [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:70}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* global $t, parseJsonLd */\n(function () {\n window.dtm_pageview = window.dtm_pageview || {};\n window.dtm_pageview.viewedPages = window.dtm_pageview.viewedPages || {}; // list of URLS already tracked (make it exposed, so )\n var viewedPages = window.dtm_pageview.viewedPages; // keep it simple, so its shorter\n\n var trackView = true;\n var i,\n excludedPaths = [\n /\\/embedded-video\\//,\n /\\/playmaker\\/embed/,\n /\\/playmaker\\/autoplayembed/,\n /\\/embedded-pkg\\//,\n /\\/embedded-newsletter\\//,\n /\\/politics\\/2023-elections\\/.*\\/embed/,\n ];\n\n var allowedHashes = new Set(['#activity']);\n\n $t('register', 'dtm_pageView');\n // reparse ldjson before pageview\n if (typeof parseJsonLd === 'function') {\n parseJsonLd();\n }\n\n // dont track pages from exlude list\n for (i = 0; excludedPaths?.[i] && trackView; i++) {\n if (document?.location?.pathname?.search?.(excludedPaths[i]) != -1) {\n trackView = false;\n }\n }\n\n // check to see if thise page has been tracked already (only one pageview per URL)\n if (viewedPages[document.location.pathname]) {\n trackView = false;\n }\n\n // Exclude chromeless=true if it appears anywhere in the URL (query, hash, etc.)\n if (typeof location !== 'undefined' && String(location.href).indexOf('chromeless=true') !== -1) {\n trackView = false;\n }\n\n var url = allowedHashes.has(location.hash) ? location.pathname + location.hash : location.pathname;\n\n $t('track', 'dtm_pageView', { initiator: 'pageViewPassThrough', trackView, url });\n viewedPages[document.location.pathname] = true;\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL832f78442abe4def96b61688e5e552df",name:"50 - Comscore pageView [d:nbcnews.com, d:msnbc.com, d:telemundo.com, d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/pathAndQuerystring.js",settings:{paths:[{value:"widget/.*",valueIsRegex:!0}]},negate:!0,timeout:2e3},{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"(function () {\n /* globals $t */\n\n // Comscore\n function comscorePageview() {\n window._comscore = window._comscore || [];\n (function () {\n var s = document.createElement('script'),\n el = document.getElementsByTagName('script')[0];\n s.async = true;\n s.src =\n (document.location.protocol == 'https:' ? 'https://sb' : 'http://b') +\n '.scorecardresearch.com/beacon.js';\n el.parentNode.insertBefore(s, el);\n })();\n\n // Privacy cookie onetrust\n var DoNotSell = (function () {\n var usPrivacyCookie = new RegExp('usprivacy=([^;]+)').exec(document.cookie);\n var usPrivacy = usPrivacyCookie !== null ? unescape(usPrivacyCookie[1]) : undefined;\n\n return usPrivacy === '1YYN' ? true : usPrivacy === '1YNN' ? false : undefined;\n })();\n\n var csUCFR = DoNotSell ? 0 : '';\n\n window._comscore.push({\n c1: '2',\n c2: '6035083',\n cs_ucfr: csUCFR,\n });\n }\n\n // track comscore pageview\n $t('on', 'dtm_pageView', function (e, data) {\n var trackView = data.trackView !== false; //this will default all to true if not false\n\n if (trackView) {\n comscorePageview();\n }\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL839627640df94436a7f5d14dce156607",name:"50 - Action - mbt_router_pageView [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"\n/* globals $t, s */\n$t('on', 'mbt_router_pageView', function(e) {\n if (s & s.pageURL != $t(e.type + '.url', '')) {\n setTimeout(function() {\n window.parseJsonLd();\n $t('track', 'dtm_pageView', {\n initiator: 'router',\n index: $t(e.type + '.index', 0),\n url: $t(e.type + '.url')\n });\n }, 1);\n }\n});\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL83f72af0eae7471b80eae22f80cf317a",name:"60 - Chartbeat - Library [d:telemundo.com, regex_path]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:60}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["telemundo.com"]},timeout:2e3},{modulePath:"core/src/lib/conditions/path.js",settings:{paths:[{value:"\\/embedded-video\\/",valueIsRegex:!0},{value:"\\/playmaker\\/embed",valueIsRegex:!0},{value:".*/embedded-newsletter/.*",valueIsRegex:!0}]},negate:!0,timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals s, $t, BI*/\n(function () {\n var topLevelDomain = s.topLevelDomain || 'nbcnews.com';\n var allBrandSettings = {\n 'telemundo.com': { id: '43949', domain: 'telemundo.com' },\n 'today.com': { id: '57481', domain: 'today.com' },\n 'nbcnews.com': { id: '57481', domain: 'nbcnews.com' },\n 'msnbc.com': { id: '57481', domain: 'msnbc.com' }\n };\n var brandSettings = allBrandSettings[topLevelDomain];\n\n /** CONFIGURATION START **/\n var _sf_async_config = window._sf_async_config = (window._sf_async_config || {});\n _sf_async_config.uid = brandSettings.id;\n _sf_async_config.domain = brandSettings.domain;\n _sf_async_config.flickerControl = false;\n _sf_async_config.autoDetect = false;\n _sf_async_config.useCanonical = false;\n _sf_async_config.useCanonicalDomain = true;\n _sf_async_config.path = document.location.href.split('?')[0].split('#')[0];\n _sf_async_config.sections = (function () {\n var sections = [];\n sections.push($t('jsonLd.Dataset.0.section'));\n sections.push($t('jsonLd.Dataset.0.subVertical'));\n //sections.push($t('jsonLd.Dataset.0.vertical', '') + ' ' + $t('jsonLd.Dataset.0.pageType', ''))\n sections.push($t('jsonLd.Dataset.0.vertical', '') + ' all');\n\n \n var ecommerceEnabled = $t('jsonLd.Dataset.0.ecommerceEnabled');\n\n if (ecommerceEnabled) sections.push('ecommerce');\n\n //get show name and section from URL\n var showMeta = document.location.pathname.match(/shows\\/(.*)\\/video/);\n showMeta = showMeta && showMeta[1].split('/') || [];\n showMeta.forEach(function (show) {\n sections.push(show);\n });\n // replace all dashes with spaces\n sections = sections.map(function (sec) {\n return sec.replace(/-/g, ' ').toLowerCase();\n });\n\n showMeta.forEach(function(item){\n sections.push(item);\n });\n\n return sections.filter(Boolean).join(',');\n })();\n _sf_async_config.authors = (function () {\n var authorArray = $t('jsonLd.NewsArticle.0.author', []);\n if (!Array.isArray(authorArray)) {\n authorArray = [authorArray];\n }\n return authorArray.map(function (auth) { return auth.name; }).join(', ');\n })();\n\n var identityState = window.BI && window.BI.userInfo && BI.userInfo.get('identityState');\n var acctState = identityState === 'authenticated' ? 'lgdin' : 'anon';\n var _cbq = window._cbq = (window._cbq || []);\n _cbq.push(['_acct', acctState]);\n /** CONFIGURATION END **/\n\n function loadChartbeat(path) {\n var e = document.createElement('script');\n var n = document.getElementsByTagName('script')[0];\n e.type = 'text/javascript';\n e.async = true;\n e.src = path;\n n.parentNode.insertBefore(e, n);\n }\n loadChartbeat('//static.chartbeat.com/js/chartbeat_video.js');\n loadChartbeat('//static.chartbeat.com/js/chartbeat_mab.js');\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL8435bae60cc94a1ab1add3acc7d1b022",name:"50 - Action - mbt_navbar_bellIconClick [d:nbcnews.com, d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["nbcnews.com","today.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals $t, s */\n(function() {\n\n function track(situation, actionContextData) {\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', situation);\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n }\n\n $t('on', 'mbt_navbar_bellIconClick', function(e, data) {\n if (data.isOpen) {\n track('navbar bell icon click', {\n 'news.linkmoduledetail': 'navbar bell icon',\n 'news.linkmoduletype': 'navbar bell icon clicked',\n });\n }\n });\n\n $t('on', 'trending_nav', function(e, data) {\n track('trending nav bell icon click', {\n 'news.linkmoduledetail': `trending_nav_bell ${data.action}`,\n 'news.linkmoduletype': 'trending_nav_bell',\n });\n });\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL84858daf52484a50a8ee4df19cbea030",name:"DR - Ads - SimpleReach pageview",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:40}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RC852bad559c7347888bafb150624adc65-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL853c0d9cca9b4cfaa6d4a49ee2c44341",name:"50 - Action - mbt_rightRailTabbed_latestClick [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"\n/* globals $t, s */\n$t('on', 'mbt_rightRailTabbed_latestClick', function() {\n var actionContextData = {\n 'news.linkmoduledetail': 'Button',\n 'news.linkmoduletype': 'Latest Stories Tab'\n };\n s.contextData = s.extendArray(s.contextData, actionContextData);\n\n //track action\n s.tl(true, 'o', 'latest stories tab click');\n\n //cleanup values after action\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n});\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL87a348075f524348bf81f752f11a1821",name:"50 - Fix elections (2024 general) ",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["nbcnews.com","msnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"(() => {\n try {\n const pageType = $t('jsonLd.Dataset.0.pageType');\n let isErrorPage = false;\n if (pageType === 'Forbidden' || pageType === 'NotFound' || pageType === 'InternalServerError') {\n isErrorPage = true;\n }\n const hideElectionMarqueesStyle = document.createElement('style');\n hideElectionMarqueesStyle.textContent = `\n [data-testid=\"marqueeEmbed\"] {\n display: none;\n }\n `;\n if (isErrorPage) {\n document.head.appendChild(hideElectionMarqueesStyle); \n }\n } catch (error) {\n console.error(error);\n }\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL8834b06397ba4838affb7b871c753a2a",name:"50 - Ads - AAM include [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,
source:'!function(){"use strict";function e(e,t,s){var n="",i=t||"Error caught in DIL module/submodule: ";return e===Object(e)?n=i+(e.message||"err has no message"):(n=i+"err is not a valid object",e={}),e.message=n,s instanceof DIL&&(e.partner=s.api.getPartner()),DIL.errorModule.handleError(e),this.errorMessage=n}var r,a,o,t={submitUniversalAnalytics:function(e,t,s){try{var n,i,r,a,o=e.getAll()[0],d=o[s||"b"].data.keys,u={};for(n=0,i=d.length;nthis.LIMIT));n++);this.errorMessage=1 \'}");if(!((s=e.getInstance(t,{idSyncContainerID:r}))===Object(s)&&s instanceof e&&"function"==typeof s.isAllowed&&"function"==typeof s.getMarketingCloudVisitorID&&"function"==typeof s.getCustomerIDs&&"function"==typeof s.isOptedOut&&"function"==typeof s.publishDestinations))throw this.releaseType="invalid instance",n="Invalid Visitor instance.",s===Object(s)&&"function"!=typeof s.publishDestinations&&(n+=" In particular, visitorInstance.publishDestinations is not a function. This is needed to fire URL destinations in DIL v8.0+ and should be present in Visitor v3.3.0+ ."),new Error(n);if(this.VisitorAPI=e,!s.isAllowed())return this.releaseType="VisitorAPI is not allowed to write cookies",void this.releaseRequests();this.instance=s,this.waitForMidToReleaseRequests()}catch(e){if(!D)throw new Error("Error in processing Visitor API, which is a hard dependency for DIL v8.0+: "+e.message);this.releaseRequests()}},waitForMidToReleaseRequests:function(){var t=this;this.instance&&(this.instance.getMarketingCloudVisitorID(function(e){t.mid=e,t.releaseType="VisitorAPI",t.releaseRequests()},!0),(!N.exists||!N.isIabContext&&N.isApproved()||N.isIabContext&&G.hasGoSignal())&&setTimeout(function(){"VisitorAPI"!==t.releaseType&&(t.releaseType="timeout",t.releaseRequests())},this.getLoadTimeout()))},releaseRequests:function(){this.calledBack=!0,R.registerRequest()},getMarketingCloudVisitorID:function(){return this.instance?this.instance.getMarketingCloudVisitorID():null},getMIDQueryString:function(){var e=V.isPopulatedString,t=this.getMarketingCloudVisitorID();return e(this.mid)&&this.mid===t||(this.mid=t),e(this.mid)?"d_mid="+this.mid+"&":""},getCustomerIDs:function(){return this.instance?this.instance.getCustomerIDs():null},getCustomerIDsQueryString:function(e){if(e!==Object(e))return"";var t,s,n,i,r="",a=[],o=[];for(t in e)e.hasOwnProperty(t)&&(s=e[o[0]=t])===Object(s)&&(o[1]=s.id||"",o[2]=s.authState||0,a.push(o),o=[]);if(i=a.length)for(n=0;n 1"):void 0},getPublishDestinationsVersion:function(){if(null!==this.publishDestinationsVersion)return this.publishDestinationsVersion;var e=R.adms.instance,s=-1;return e.publishDestinations(null,null,function(e){if(e===Object(e)){var t=e.error;"subdomain is not a populated string."===t?s=1:"Invalid parameters passed."===t&&(s=2)}}),this.publishDestinationsVersion=s}},q={traits:function(e){return V.isValidPdata(e)&&(T.sids instanceof Array||(T.sids=[]),x.extendArray(T.sids,e)),this},pixels:function(e){return V.isValidPdata(e)&&(T.pdata instanceof Array||(T.pdata=[]),x.extendArray(T.pdata,e)),this},logs:function(e){return V.isValidLogdata(e)&&(T.logdata!==Object(T.logdata)&&(T.logdata={}),x.extendObject(T.logdata,e)),this},customQueryParams:function(e){return V.isEmptyObject(e)||x.extendObject(T,e,R.reservedKeys),this},signals:function(e,t){var s,n=e;if(!V.isEmptyObject(n)){if(t&&"string"==typeof t)for(s in n={},e)e.hasOwnProperty(s)&&(n[t+s]=e[s]);x.extendObject(T,n,R.reservedKeys)}return this},declaredId:function(e){return R.declaredId.setDeclaredId(e,"request"),this},result:function(e){return"function"==typeof e&&(T.callback=e),this},afterResult:function(e){return"function"==typeof e&&(T.postCallbackFn=e),this},useImageRequest:function(){return T.useImageRequest=!0,this},clearData:function(){return T={},this},submit:function(e){return T.isDefaultRequest=!!e,M.submitRequest(T),T={},this},getPartner:function(){return I},getContainerNSID:function(){return r},getEventLog:function(){return S},getState:function(){var e={},t={};return x.extendObject(e,R,{registerRequest:!0}),x.extendObject(t,k,{requestToProcess:!0,process:!0,sendMessages:!0}),{initConfig:s,pendingRequest:T,otherRequestInfo:e,destinationPublishingInfo:t,log:S}},idSync:function(){throw new Error("Please use the `idSyncByURL` method of the Experience Cloud ID Service (Visitor) instance")},aamIdSync:function(){throw new Error("Please use the `idSyncByDataSource` method of the Experience Cloud ID Service (Visitor) instance")},passData:function(e){return V.isEmptyObject(e)?"Error: json is empty or not an object":(M.defaultCallback(e),e)},getPlatformParams:function(){return R.platformParams},getEventCallConfigParams:function(){var e,t=R,s=t.modStatsParams,n=t.platformParams;if(!s){for(e in s={},n)n.hasOwnProperty(e)&&!t.nonModStatsParams[e]&&(s[e.replace(/^d_/,"")]=n[e]);!0===d?s.coop_safe=1:!1===d&&(s.coop_unsafe=1),t.modStatsParams=s}return s},setAsCoopSafe:function(){return d=!0,this},setAsCoopUnsafe:function(){return d=!1,this},getEventCallIabSignals:function(e){var t;return e!==Object(e)?"Error: config is not an object":"function"!=typeof e.callback?"Error: config.callback is not a function":(t=parseInt(e.timeout,10),isNaN(t)&&(t=null),void G.getQueryStringObject(e.callback,t))}},M={corsMetadata:(E="none","undefined"!=typeof XMLHttpRequest&&XMLHttpRequest===Object(XMLHttpRequest)&&"withCredentials"in new XMLHttpRequest&&(E="XMLHttpRequest"),{corsType:E}),getCORSInstance:function(){return"none"===this.corsMetadata.corsType?null:new window[this.corsMetadata.corsType]},submitRequest:function(e){return R.registerRequest(M.createQueuedRequest(e)),!0},createQueuedRequest:function(e){var t,s,n,i,r,a=e.callback,o="img",d=e.isDefaultRequest;if(delete e.isDefaultRequest,!V.isEmptyObject(u))for(n in u)if(u.hasOwnProperty(n)){if(null==(i=u[n])||""===i)continue;if(n in e&&!(i in e)&&!(i in R.reservedKeys)){if(null==(r=e[n])||""===r)continue;e[i]=r}}return V.isValidPdata(e.sids)||(e.sids=[]),V.isValidPdata(e.pdata)||(e.pdata=[]),V.isValidLogdata(e.logdata)||(e.logdata={}),e.logdataArray=x.convertObjectToKeyValuePairs(e.logdata,"=",!0),e.logdataArray.push("_ts="+(new Date).getTime()),"function"!=typeof a&&(a=this.defaultCallback),t=this.makeRequestSrcData(e),(s=this.getCORSInstance())&&!0!==e.useImageRequest&&(o="cors"),{tag:o,src:t.src,corsSrc:t.corsSrc,callbackFn:a,postCallbackFn:e.postCallbackFn,useImageRequest:!!e.useImageRequest,requestData:e,corsInstance:s,corsPostData:t.corsPostData,isDefaultRequest:d}},defaultCallback:function(e,t){var s,n,i,r,a,o,d,u,c;if(g&&(s=e.stuff)&&s instanceof Array&&(n=s.length))for(i=0;i0?t.get.apply(t,arguments):t.list.apply(t,arguments);},i=function(e,n){t.errorLog.push(e),(!n||t.debug>=1)&&o('$t error - '+e);},o=n.console?function(){n.console.log.apply(n.console,arguments);}:function(){},s=function(e,t){for(var n in e=e||{},t)'object'==typeof t[n]?e[n]=s(e[n],t[n]):e[n]=t[n];return e;},a=function(e,n){var r=!1;return/^[^a-zA-Z_$]|[^0-9a-zA-Z_$]/.test(e)&&(r='validation: '+e+' is not a valid variable name'),n||void 0===t.eventLog[e]||(r='validation: '+e+' is already registered'),!r||(i(r),!1);},c={exp:36e5,key:'ts_data.',save:function(e,t,r){var i=(new Date).getTime(),o={eventData:t,timestamp:i};i=r?i+r:i+this.exp;var s=/\\w+\\.\\w+$/.exec(n.location.hostname);return this.cookie.set({name:this.key+e,value:JSON.stringify(o),path:'/',expires:new Date(i),domain:s}),t;},load:function(e){var t=null;return!!(t=this.cookie.get(this.key+e))&&(t=JSON.parse(t),(new Date).getTime()0)for(var o=0;this.listeners[n][o];o++){var s=this.listeners[n][o];try{s.apply(t,[{type:n},r]);}catch(e){i('Cant execute callback for: '+n+'. '+e.stack);}}},bind:function(e,t,n){void 0===this.listeners[t]&&(this.listeners[t]=[]),this.listeners[t].push(n);}},l=function(e){if(e=e.split('.'),void 0!==n[e[0]]){for(var t=n[e[0]],r=1;e.length>r;r++){if(null===t||void 0===t[e[r]])return i('TRAM convert - undefined - '+e.join().replace(/,/g,'.'),!0),!1;t=t[e[r]];}return!function(e){if('object'==typeof e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0;}return!1;}(t)&&t||!1;}return i('TRAM convert - missing root obj - '+e[0],!0),!1;},u={},v={uniqueKey:'$t_nbc_crossEvent',srcUrl:[n.location.protocol,'//',n.location.host,n.location.pathname].join(''),listen:function(){var r=this.uniqueKey,i=this.srcUrl,o=n.addEventListener?'addEventListener':'attachEvent',s=n[o];s('attachEvent'==o?'onmessage':'message',function(o){if(e.trustedDomains.includes(o.origin)&&'string'==typeof o.data&&o.data.substring(0,r.length)===r){var s=function(e){try{return JSON.parse(e);}catch(e){return null;}}(o.data.replace(r,''));s&&s.action&&s.srcUrl!==i&&('track'!==s.action[0]&&'register'!==s.action[0]||(t.apply(t,s.action),parent!==n&&parent.postMessage(o.data,'*')));}},!1);},send:function(e,t){var n=this.uniqueKey,r={action:e,srcUrl:this.srcUrl};parent.postMessage(n+JSON.stringify(r),t||'*');}},p={};return t.version=function(){const e='[VI]{version}[/VI]',t='3.2.0-web';let n='2.4.1';return isNaN(parseInt(e))||(n=e),isNaN(parseInt(t.replace('-web','')))||(n=t),n;}(),t.debug=0,t.errorLog=[],t.eventLog={},t.eventHistory={},t.storage=c,t.maxHistoryLength=10,t.track=function(e,t,r){if(void 0!==this.eventLog[e]){if('object'!=typeof r&&(r={}),t=t||!0,this.eventLog[e]=t,r.persistent){var a=!1;r.expires&&(a=1e3*r.expires),c.save(e,t,a);}if(0!==e.indexOf('_')&&f.trigger(this,'eventTracked',{eventType:e,eventData:t}),p[e]&&p[e].remote){if('object'==typeof t&&!t.$t_remote){var l=[n.location.protocol,'//',n.location.host,n.location.pathname].join('');s(t,{$t_remote:l});}v.send(['track',e,t],p[e].targetOrigin);}f.trigger(this,e,t),(1==this.debug&&0!==e.indexOf('_')||2==this.debug)&&o('*Tracking service: '+e+' triggered');const i=this.eventHistory[e];return 0==Array.isArray(i)?o('*Tracking service: '+e+' history could not be stored'):(i.length>=this.maxHistoryLength&&i.shift(),i.push({data:t,options:r})),!0;}return i('unable to track: '+e),!1;},t.register=function(e,t){'object'!=typeof t&&(t={}),t=p[e[f]]=s(p[e[f]]||{},t);for(var n='',r=c.listEvents(),o={},f=0;r[f];f++)o[r[f]]=!0;for('string'==typeof e&&(e=[e]),f=0;e[f];f++){if(this.eventHistory[e[f]]=[],!0===o[e[f]])return!0;a(e[f],t.allowDuplicate)?(this.eventLog[e[f]]=null,t.remote&&v.send(['register',e[f],t])):n+=e[f]+',';}return!n||(i('could not register: '+n),!1);},t.registeredEvents=function(e){e=e||'';var n=!1,r=[];for(var i in 0===e.indexOf('_')&&(n=!0,e=e.substr(1)),t.eventLog)-1==i.indexOf(e)||0===i.indexOf('_')&&!n||r.push(i);return r;},t.bindTrack=function(e){f.bind(this,'eventTracked',e);},t.on=function(e,t,n){'string'==typeof e&&(e=[e]);for(var r=0;e[r];r++)1==n?.consumeHistory&&(this.eventHistory[e[r]]??[]).forEach(n=>{t.apply(this,[{type:e[r]},n.data]);}),f.bind(this,e[r],t);},t.load=function(e,t,n){void 0===u[e]?'string'==typeof t?(u[e]={},u[e].info={ref:t,options:n}):i('TRAM load - object reference must be string'):i('TRAM load - object name taken');},t.get=function(e,n){var r=e.split('.')[0];if(n=void 0!==n?n:'',t.eventLog[r]||u[r]){t.eventLog[r]&&(e='$t.'+e,r='$t'),e=e.replace(r,u[r].info.ref);var i=l(e);return i||n;}return n;},t.list=function(e){if(e)t.eventLog[e]?(o(e+' : event info'),o(t.eventLog[e])):u[e]?void 0!==window[u[e].info.ref.split('.')[0]]?(o(e+' : '+u[e].info.ref),o(l(u[e].info.ref))):o(e+' : '+u[e].info.ref+' : Not present'):o(e+' : Empty or not defined');else{for(var n in o('%cversion: %s','font-weight:bold;',t.version),o('%cevents:','font-weight:bold;'),t.eventLog)if(0!==n.indexOf('_')||2==t.debug){var r=p[n]&&p[n].remote?'(remote)':'';t.eventLog[n]?o('%c* %s %s fired %O','color:#B80;',n,r,t.eventLog[n]):(r=p[n]&&p[n].remote?'(remote)':'',o('%s %s',n,r));}for(var i in o('%cTRAM objects:','font-weight:bold;'),u)o('%s : %s : %O',i,u[i].info.ref,l(u[i].info.ref));t.errorLog.length>0&&o('%clog: %O','font-weight:bold;',t.errorLog);}},function(){var e=c.listEvents();if(!e)return!1;for(var n=0;e[n];n++){var r=c.load(e[n]);r&&(t.eventLog[e[n]]=r);}}(),t.load('$t','$t.eventLog'),e.remoteEnabled&&v.listen(),t;};if(void 0!==n.$t){if(!parseFloat(n.$t.version)>0){var o=n.$t('getSaves');Object.defineProperty(n,'$t',{value:i(),configurable:!1,enumerable:!0,writable:!0});for(var s=0;o[s];s++)n.$t.apply(n.$t,o[s]);}}else Object.defineProperty(n,'$t',{value:i(),configurable:!1,enumerable:!0,writable:!0});return n.$t;};e.init=n,Object.defineProperty(e,'__esModule',{value:!0});});\n\nwindow.trackB.init();\n\n//load data layers\n$t('load','jsonLd','jsonLd');\n\n",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"\nwindow.parseJsonLd = function() {\n var safeParse = function(JSONstring) {\n try {\n return JSON.parse(JSONstring);\n } catch (e) {\n return { '@type':'error','errorObj': e };\n }\n };\n var rawJsonLd = document.querySelectorAll('script[type=\"application/ld+json\"]');\n window.jsonLd = {};\n for (var i = 0; rawJsonLd[i]; i++) {\n var entryParsed = safeParse(rawJsonLd[i].innerHTML);\n var type = entryParsed['@type'] || 'unknown';\n window.jsonLd[type] = window.jsonLd[type] || [];\n window.jsonLd[type].push(entryParsed);\n }\n};\nwindow.parseJsonLd();\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL98036fbaf394443ba568f9eb06768c80",name:"50 - Action - mbt_checkmate_button [d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals $t, s */\n(function() {\n function track(situation, actionContextData) {\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', situation);\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n }\n\n $t('on', 'mbt_checkmate_button_click', function(e, data = {}) {\n if (data.action === 'itemClick') {\n track('checkmate install', {\n 'news.linkmoduledetail': '',\n 'news.linkmoduletype': 'Checkmate Install',\n });\n }\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLa27257e1bcb94866a0f0ca7bf0524c67",name:"50 - Action - dtm_click_track - Hamburger Menu [d:nbcnews.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["nbcnews.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"(function() {\n $t('on','dtm_click_track',function(e, data){\n\n // Declaring helpers to find relevant clicks\n\n var validInnerText = new Set([\n \"MY NEWS\",\n \"SIGN OUT\",\n \"SIGN IN\",\n \"CREATE YOUR FREE PROFILE\",\n ]);\n\n var validClosestDivClasses = new Set([\n 'js-authenticated',\n 'js-unauthenticated',\n ]);\n\n // Exiting early if the click wasn't on a relevant element\n\n var innerText = data.innerText || '';\n if (false == validInnerText.has(innerText.toUpperCase().trim())) return;\n\n var closestDivClasses = data.closestDivClasses || '' ;\n if (false == validClosestDivClasses.has(closestDivClasses.toLowerCase().trim())) return;\n\n // Tracking clicks that haven't triggered early returns\n\n var actionContextData = {\n 'news.linkmoduledetail': innerText + ' button',\n 'news.linkmoduletype': 'hamburger identity click'\n };\n\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', 'Hamburger Identity Click');\n \n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n\n })\n})()\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLa3a074d3104e40108cfb93d01f539ce1",name:"DR - Hyphen Social",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com","nbcnews.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RC97b7286119dc4f2ebd6462f839b1aa1c-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RLaab8fea0b3a343eb8c18ea9667034ac2",name:"30 - Streamsense SDK [d:nbcnews.com, d:msnbc.com, d:telemundo.com, t:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:30}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,
source:'/* eslint-disable */\n\n/* Copyright (c) 2023 comScore, Inc.\n * All rights reserved.\n * By using this software, you are agreeing to be bound by the\n * terms of these policies: http://www.comscore.com/About_comScore/Privacy_Policy\n */\n!(function (n, t) {\n "object" == typeof exports && "object" == typeof module\n ? (module.exports = t())\n : "function" == typeof define && define.amd\n ? define([], t)\n : "object" == typeof exports\n ? (exports.analytics = t())\n : ((n.ns_ = n.ns_ || {}), (n.ns_.analytics = t()));\n})("undefined" != typeof self ? self : this, function () {\n return (function (n) {\n var t = {};\n function e(i) {\n if (t[i]) return t[i].exports;\n var r = (t[i] = { t: i, i: !1, exports: {} });\n return n[i].call(r.exports, r, r.exports, e), (r.i = !0), r.exports;\n }\n return (\n (e.o = n),\n (e.c = t),\n (e.d = function (n, t, i) {\n e.u(n, t) || Object.defineProperty(n, t, { l: !0, get: i });\n }),\n (e.r = function (n) {\n "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(n, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(n, "v", { value: !0 });\n }),\n (e._ = function (n, t) {\n if ((1 & t && (n = e(n)), 8 & t)) return n;\n if (4 & t && "object" == typeof n && n && n.v) return n;\n var i = Object.create(null);\n if ((e.r(i), Object.defineProperty(i, "default", { l: !0, value: n }), 2 & t && "string" != typeof n))\n for (var r in n)\n e.d(\n i,\n r,\n function (t) {\n return n[t];\n }.bind(null, r)\n );\n return i;\n }),\n (e.n = function (n) {\n var t =\n n && n.v\n ? function () {\n return n["default"];\n }\n : function () {\n return n;\n };\n return e.d(t, "a", t), t;\n }),\n (e.u = function (n, t) {\n return Object.prototype.hasOwnProperty.call(n, t);\n }),\n (e.p = ""),\n e((e.s = 56))\n );\n })([\n function (n, t) {\n var e = e || {};\n (e.filter = function (n, t) {\n var e = {};\n for (var i in t) t.hasOwnProperty(i) && n(t[i]) && (e[i] = t[i]);\n return e;\n }),\n (e.extend = function (n) {\n var t,\n e = arguments.length;\n n = n || {};\n for (var i = 1; i < e; i++) if ((t = arguments[i])) for (var r in t) t.hasOwnProperty(r) && (n[r] = t[r]);\n return n;\n }),\n (e.h = function (n, t) {\n if (((t = t || 0), "object" != typeof n)) return n;\n var i;\n if (n instanceof Array) {\n i = [];\n for (var r = 0, o = n.length; r < o; r++) i[r] = e.h(n[r], t - 1);\n return i;\n }\n for (var u in ((i = {}), n))\n if (n.hasOwnProperty(u)) {\n var s = n[u];\n "object" == typeof s && t > 0 && (s = e.h(s, t - 1)), (i[u] = s);\n }\n return i;\n }),\n (n.exports.filter = e.filter),\n (n.exports.extend = e.extend),\n (n.exports.h = e.h);\n },\n function (n, t) {\n var e,\n i = i || {};\n (i.g =\n ((e = 1),\n function () {\n return +new Date() + "_" + e++;\n })),\n (i.m = function () {\n var n = new Date().getTime(),\n t = ("undefined" != typeof performance && performance.now && 1e3 * performance.now()) || 0;\n return "xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g, function (e) {\n var i = 16 * Math.random();\n return n > 0 ? ((i = (n + i) % 16 | 0), (n = Math.floor(n / 16))) : ((i = (t + i) % 16 | 0), (t = Math.floor(t / 16))), ("x" === e ? i : (3 & i) | 8).toString(16);\n });\n }),\n (i.S = function (n) {\n return n === undefined || null === n || "" === n || (n instanceof Array && 0 === n.length);\n }),\n (i.I = function (n) {\n return !this.S(n);\n }),\n (i.P = function (n, t) {\n return (t = this.A(t) ? t : ""), this.A(n) ? n : t;\n }),\n (i.C = function (n) {\n return void 0 !== n && ("string" == typeof n ? "true" === (n = n.toLowerCase()) || "1" === n || "on" === n : !!n);\n }),\n (i.L = function (n, t, e, i, r) {\n if (t < 0 || i < 0 || t + r > n.length || i + r > e.length) return !1;\n for (; --r >= 0; ) {\n if (n.charAt(t++) != e.charAt(i++)) return !1;\n }\n return !0;\n }),\n (i.A = function (n) {\n return void 0 !== n && null != n;\n }),\n (i.D = function (n) {\n return !!(n && n.constructor && n.call && n.apply);\n }),\n (i.N = function () {\n return new Date().getTime();\n }),\n (n.exports.N = i.N),\n (n.exports.D = i.D),\n (n.exports.A = i.A),\n (n.exports.L = i.L),\n (n.exports.C = i.C),\n (n.exports.P = i.P),\n (n.exports.I = i.I),\n (n.exports.S = i.S),\n (n.exports.g = i.g),\n (n.exports.uuid = i.m);\n },\n function (n, t) {\n var e,\n i =\n ((e = [\n "play",\n "pause",\n "pause-on-buffering",\n "end",\n "buffer",\n "buffer-stop",\n "keep-alive",\n "hb",\n "custom",\n "load",\n "start",\n "skstart",\n "adskip",\n "cta",\n "error",\n "trans",\n "drmfa",\n "drmap",\n "drmde",\n "bitrt",\n "playrt",\n "volume",\n "window",\n "audio",\n "video",\n "subs",\n "cdn",\n ]),\n {\n PLAY: 0,\n PAUSE: 1,\n PAUSE_ON_BUFFERING: 2,\n END: 3,\n BUFFER: 4,\n BUFFER_STOP: 5,\n KEEPALIVE: 6,\n HEARTBEAT: 7,\n CUSTOM: 8,\n LOAD: 9,\n ENGAGE: 10,\n SEEK_START: 11,\n AD_SKIP: 12,\n CTA: 13,\n ERROR: 14,\n TRANSFER: 15,\n DRM_FAILED: 16,\n DRM_APPROVED: 17,\n DRM_DENIED: 18,\n BIT_RATE: 19,\n PLAYBACK_RATE: 20,\n VOLUME: 21,\n WINDOW_STATE: 22,\n AUDIO: 23,\n VIDEO: 24,\n SUBS: 25,\n CDN: 26,\n toString: function (n) {\n return e[n];\n },\n }),\n r = (function () {\n var n = ["c", "s", "r"];\n return {\n T: 0,\n O: 1,\n k: 2,\n toString: function (t) {\n return n[t];\n },\n };\n })();\n (n.exports.R = i),\n (n.exports.M = {\n IDLE: 0,\n PLAYBACK_NOT_STARTED: 1,\n PLAYING: 2,\n PAUSED: 3,\n BUFFERING_BEFORE_PLAYBACK: 4,\n BUFFERING_DURING_PLAYBACK: 5,\n BUFFERING_DURING_SEEKING: 6,\n BUFFERING_DURING_PAUSE: 7,\n SEEKING_BEFORE_PLAYBACK: 8,\n SEEKING_DURING_PLAYBACK: 9,\n SEEKING_DURING_BUFFERING: 10,\n SEEKING_DURING_PAUSE: 11,\n PAUSED_DURING_BUFFERING: 12,\n }),\n (n.exports.U = r);\n },\n function (n, t, e) {\n var i = e(0),\n r = e(60),\n o = e(61),\n u = e(6),\n s = e(62),\n a = e(66),\n f = e(67),\n c = e(68),\n l = e(69),\n d = e(71),\n v = e(74),\n _ = e(75),\n h = e(76),\n p = e(77),\n g = e(78),\n m = e(39),\n y = e(81),\n b = e(82),\n S = {\n W: "PLATFORM",\n F: "defaultLiveEndpointUrl",\n V: "defaultSecureLiveEndpointUrl",\n B: "defaultLiveEndpointUrlNoCookies",\n j: "defaultSecureLiveEndpointUrlNoCookies",\n G: "httpGet",\n H: "httpPost",\n Storage: "Storage",\n K: "offlineCache",\n J: "migratedStorage",\n Y: "migratedIO",\n X: "defaultStorageWriteInterval",\n Z: "onDataFetch",\n nn: "getCrossPublisherUniqueDeviceId",\n tn: "getApplicationName",\n en: "getApplicationVersion",\n in: "getPublisherSpecificUniqueDeviceId",\n rn: "getPublisherSpecificUniqueDeviceIdSuffix",\n un: "getDeviceModel",\n sn: "getPlatformVersion",\n an: "getPlatformName",\n fn: "getRuntimeName",\n cn: "getRuntimeVersion",\n ln: "getDisplayResolution",\n dn: "getApplicationResolution",\n vn: "getLanguage",\n _n: "getPackageName",\n setPlatformAPI: "setPlatformAPI",\n setTimeout: "setTimeout",\n setInterval: "setInterval",\n clearTimeout: "clearTimeout",\n clearInterval: "clearInterval",\n hn: "getDeviceArchitecture",\n pn: "getConnectionType",\n gn: "getDeviceJailBrokenFlag",\n mn: "updateMeasurementLabels",\n yn: "standardOutputLog",\n bn: "defaultSystemClockJumpDetectorNormalContextInterval",\n Sn: "defaultSystemClockJumpDetectorAlternativeContextInterval",\n wn: "isNormalContext",\n En: "addContextChangeListener",\n In: "removeContextChangeListener",\n Pn: "addEnvironmentExitListener",\n An: "removeEnvironmentExitListener",\n Cn: "overrideCollectedC12Value",\n Ln: "defaultC12OverrideValue",\n Dn: "getPlatformEnvironmentProperties",\n Nn: "tcfIntegration",\n Tn: "firstPartyCookie",\n };\n n.exports = new (function () {\n var n,\n t,\n e = this;\n function w(e) {\n if (!n)\n switch (((n = !0), e)) {\n case o.SmartTV:\n i.extend(t, s);\n break;\n case o.Netcast:\n i.extend(t, a);\n break;\n case o.Cordova:\n i.extend(t, c);\n break;\n case o.Trilithium:\n i.extend(t, l);\n break;\n case o.AppleTV:\n i.extend(t, d);\n break;\n case o.Chromecast:\n i.extend(t, _);\n break;\n case o.Xbox:\n i.extend(t, v);\n break;\n case o.webOS:\n i.extend(t, f);\n break;\n case o.tvOS:\n i.extend(t, h);\n break;\n case o.JSMAF:\n i.extend(t, p);\n break;\n case o.nodejs:\n i.extend(t, g);\n break;\n case o.html5:\n i.extend(t, m);\n break;\n case o.WebBrowser:\n i.extend(t, y);\n break;\n case o.SamsungTizenTV:\n i.extend(t, b);\n }\n }\n i.extend(e, {\n On: null,\n PlatformApis: o,\n kn: null,\n Rn: function () {\n n || w(o.WebBrowser);\n },\n setPlatformApi: function (n, e) {\n var r, u;\n if ("number" == typeof n) (r = n), (u = e || {});\n else {\n if ("object" != typeof n) return;\n (r = o.Skeleton), (u = n);\n }\n w(r),\n i.extend(\n t,\n (function (n) {\n var t = {};\n for (var e in S) {\n var i = S[e];\n i in n && (t[e] = n[i]);\n }\n return t;\n })(u)\n );\n },\n }),\n (n = !1),\n (e.kn = t = i.h(u)),\n (e.On = new r(e));\n })();\n },\n function (n, t) {\n n.exports = {\n Mn: "unknown",\n Un: "0x0",\n xn:\n "-----BEGIN PUBLIC KEY-----\\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD0+fCVxGq3Bk24jUKO1PzsiUs3\\nvqww6zR4n2e3AweVLUAgsrDRbAWJ/EjZm1WBLBVNMiTLpSAkV6sjOIrUs03xdUEj\\nQZJHwOGK+MfzFaZukoo0qAsEMPwQ5posv0JdkBdUGhKchPk6+NYmD6Hb44Lkp7/a\\nQnVeWzvfAPQyTJR5wQIDAQAB\\n-----END PUBLIC KEY-----",\n };\n },\n function (n, t) {\n (t.Wn = function (n, t) {\n if ("undefined" != typeof XMLHttpRequest) {\n var e = new XMLHttpRequest();\n e.open("GET", n, !0),\n (e.onreadystatechange = function () {\n 4 === e.readyState && (t && t(e.status), (e = null));\n }),\n e.send();\n } else "function" == typeof setTimeout ? t && setTimeout(t, 0) : t && t();\n }),\n (t.Fn = function (n, t, e) {\n if ("undefined" != typeof XMLHttpRequest) {\n var i = new XMLHttpRequest();\n i.open("POST", n, !0),\n (i.onreadystatechange = function () {\n 4 === i.readyState && (e && e(i.status), (i = null));\n }),\n i.send(t);\n } else "function" == typeof setTimeout ? e && setTimeout(e, 0) : e && e();\n });\n },\n function (n, t, e) {\n var i = e(17),\n r = e(12),\n o = e(7),\n u = e(4),\n s = e(9),\n a = u.Mn,\n f = u.Un,\n c = e(13),\n l = {\n W: "generic",\n F: c.Vn,\n B: c.Vn,\n V: c.Bn,\n j: c.Bn,\n G: r,\n H: null,\n Storage: o,\n K: !1,\n J: null,\n Y: null,\n X: 0,\n Nn: !1,\n Tn: !1,\n Z: function (n) {\n n();\n },\n nn: function () {\n return null;\n },\n tn: function () {\n return a;\n },\n en: function () {\n return a;\n },\n in: function () {\n return +new Date() + ~~(1e3 * Math.random());\n },\n rn: function () {\n return "72";\n },\n un: function () {\n return a;\n },\n sn: function () {\n return a;\n },\n an: function () {\n return "js";\n },\n fn: function () {\n return a;\n },\n cn: function () {\n return a;\n },\n ln: function () {\n return f;\n },\n dn: function () {\n return f;\n },\n vn: function () {\n return a;\n },\n _n: function () {\n return a;\n },\n setPlatformAPI: function () {},\n setTimeout: function (n, t) {\n return setTimeout(n, t);\n },\n setInterval: function (n, t) {\n return setInterval(n, t);\n },\n clearTimeout: function (n) {\n return clearTimeout(n);\n },\n clearInterval: function (n) {\n return clearInterval(n);\n },\n hn: function () {\n return a;\n },\n pn: function () {\n return s.UNKNOWN;\n },\n gn: function () {\n return a;\n },\n mn: function (n) {},\n yn: function (n) {\n console.log(n);\n },\n bn: 3e3,\n Sn: 3e4,\n wn: function () {\n return !i.qn() || !i.jn();\n },\n En: function (n) {\n i.qn() && i.Gn(n);\n },\n In: function (n) {\n i.qn() && i.Hn(n);\n },\n Pn: function (n) {},\n An: function (n) {},\n Cn: !1,\n Ln: "_",\n Dn: function () {\n return "0", "-0", "-2", "0-0-2";\n },\n };\n n.exports = l;\n },\n function (n, t, e) {\n var i = e(0);\n n.exports = function (n) {\n var t;\n !(function () {\n try {\n t = "undefined" != typeof localStorage ? localStorage : null;\n } catch (n) {\n t = null;\n }\n })(),\n i.extend(this, {\n storeProperties: function (n) {\n if (t)\n try {\n "function" == typeof t.setItem ? t.setItem("cs_settings", n) : t && (t.Kn = n);\n } catch (e) {}\n },\n getProperties: function () {\n if (!t) return null;\n try {\n if ("function" == typeof t.getItem) return t.getItem("cs_settings");\n if (t) return t.Kn;\n } catch (n) {}\n },\n storeCache: function (n) {\n if (t)\n try {\n "function" == typeof t.setItem ? t.setItem("cs_cache", n) : t && (t.Jn = n);\n } catch (e) {}\n },\n getCache: function () {\n if (!t) return null;\n try {\n if ("function" == typeof t.getItem) return t.getItem("cs_cache");\n if (t) return t.Jn;\n } catch (n) {}\n },\n });\n };\n },\n function (n, t) {\n var e = {\n Yn: function (n, t, e) {\n return null != t && t + "" != "" && null != e && ((n[t + ""] = e + ""), !0);\n },\n zn: function (n, t) {\n for (var i in t) t.hasOwnProperty(i) && e.Yn(n, i, t[i]);\n },\n };\n (n.exports.Yn = e.Yn), (n.exports.zn = e.zn);\n },\n function (n, t) {\n n.exports = { UNKNOWN: 0, UNAVAILABLE: 1, DISCONNECTED: 2, CONNECTED: 3, ETHERNET: 4, WIFI: 5, WWAN: 6, BLUETOOTH: 7, EMULATOR: 8 };\n },\n function (n, t, e) {\n var i = e(0);\n n.exports = function () {\n var n = "undefined" != typeof localStorage ? localStorage : null;\n i.extend(this, {\n get: function (t) {\n try {\n return n && "function" == typeof n.getItem ? n.getItem("cs_" + t) : n ? n["cs_" + t] : n;\n } catch (e) {}\n },\n remove: function (t) {\n try {\n n && "function" == typeof n.removeItem ? n.removeItem("cs_" + t) : n && delete n["cs_" + t];\n } catch (e) {}\n },\n clear: function () {\n try {\n for (var t = 0; n && t < n.length; ++t) {\n var e = n.key(t);\n "cs_" === e.substr(0, "cs_".length) && ("function" == typeof n.removeItem ? n.removeItem(e) : delete n[e]);\n }\n } catch (i) {}\n },\n });\n };\n },\n function (n, t) {\n n.exports = {\n Xn: "ocdrm",\n Qn: "ltrts",\n $n: "pappv",\n Zn: "fits",\n nt: "cits",\n tt: "cpidmd5",\n et: "cpidrsa",\n it: "c12s",\n rt: "lappaccts",\n ot: "lsaccts",\n ut: "lappsts",\n st: "ftrsc",\n ft: "accft",\n ct: "accbt",\n lt: "accit",\n dt: "tft",\n vt: "tbt",\n _t: "tit",\n ht: "accappst",\n pt: "appsc",\n gt: "g",\n yt: "lrt",\n bt: "dc",\n St: "dco",\n wt: "csc",\n Et: "sl",\n };\n },\n function (n, t) {\n n.exports = function (n, t, e) {\n if ("undefined" != typeof Image) {\n var i = new Image();\n (i.onload = function () {\n t && t(200), (i = null);\n }),\n (i.onerror = function () {\n t && t(), (i = null);\n }),\n (i.src = n);\n } else "function" == typeof setTimeout ? t && setTimeout(t, 0) : t && t();\n };\n },\n function (n, t, e) {\n var i = {\n VERSION: "7.8.0+2310050509",\n It: !0,\n Pt: 5e3,\n At: !0,\n Ct: e(21).STANDARD,\n Lt: [\n "c1",\n "c2",\n "ca2",\n "cb2",\n "cc2",\n "cd2",\n "ns_site",\n "ns_ap_an",\n "ns_ap_pn",\n "ns_ap_pv",\n "c12",\n "ca12",\n "cb12",\n "cc12",\n "cd12",\n "ns_ak",\n "ns_ar",\n "name",\n "ns_ap_ni",\n "ns_ap_ec",\n "ns_ap_ev",\n "ns_ap_device",\n "ns_ap_id",\n "ns_ap_csf",\n "ns_ap_bi",\n "ns_ap_pfm",\n "ns_ap_pfv",\n "ns_ap_ver",\n "ns_ap_sv",\n "ns_ap_bv",\n "ns_ap_cv",\n "ns_ap_smv",\n "ns_type",\n "cs_partner",\n "cs_xcid",\n "cs_impid",\n "cs_proid",\n "cs_dc_di",\n "cs_dc_ci",\n "cs_dc_ei",\n "ns_ap_ui",\n "ns_ap_gs",\n "ns_ap_ie",\n "ns_ts",\n "ns_ap_cfg",\n "ns_ap_env",\n "ns_ap_ais",\n "ns_ap_ut",\n "ns_ap_er",\n "cs_fpcu",\n "cs_fpid",\n "cs_fpit",\n "cs_fpdm",\n "cs_fpdt",\n "ns_st_sv",\n "ns_st_pv",\n "ns_st_smv",\n "ns_st_it",\n "ns_st_id",\n "ns_st_ec",\n "ns_st_cn",\n "ns_st_ev",\n "ns_st_sp",\n "ns_st_sc",\n "ns_st_ppc",\n "ns_st_apc",\n "ns_st_spc",\n "ns_st_dppc",\n "ns_st_dapc",\n "ns_st_dspc",\n "ns_st_psq",\n "ns_st_asq",\n "ns_st_sq",\n "ns_st_po",\n "ns_st_lda",\n "ns_st_ldw",\n "ns_st_ldo",\n "ns_st_hc",\n "ns_st_hd",\n "ns_st_mp",\n "ns_st_mv",\n "ns_st_cl",\n "ns_st_sl",\n "ns_st_pn",\n "ns_st_tp",\n "ns_st_ct",\n "ns_st_ad",\n "ns_st_li",\n "ns_st_ty",\n "ns_st_ci",\n "ns_st_si",\n "ns_ap_et",\n "ns_ap_ar",\n "cs_c12u",\n "ca_cs_c12u",\n "cb_cs_c12u",\n "cc_cs_c12u",\n "cd_cs_c12u",\n "ns_ap_cs",\n "ns_ap_fg",\n "ns_ap_dft",\n "ns_ap_dbt",\n "ns_ap_dit",\n "ns_ap_as",\n "ns_ap_das",\n "ns_ap_usage",\n "ns_category",\n "category",\n "ns_radio",\n "ns_st_pt",\n "ns_st_ipt",\n "ns_st_iap",\n "ns_st_iet",\n "ns_st_iupc",\n "ns_st_iupa",\n "ns_st_ilpc",\n "ns_st_ilpa",\n "ns_st_ibc",\n "ns_st_ibt",\n "ns_st_itpc",\n "ns_st_icpc",\n "ns_st_ae",\n "ns_st_er",\n "ns_st_cfg",\n "ns_st_rcn",\n "ns_st_cpo",\n "ns_st_ui",\n "c3",\n "ca3",\n "cb3",\n "cc3",\n "cd3",\n "c4",\n "ca4",\n "cb4",\n "cc4",\n "cd4",\n "c6",\n "ca6",\n "cb6",\n "cc6",\n "cd6",\n "ns_st_bn",\n "ns_st_tb",\n "ns_st_an",\n "ns_st_ta",\n "ns_st_ce",\n "ns_st_ia",\n "ns_st_pu",\n "ns_st_st",\n "ns_st_stc",\n "ns_st_sta",\n "ns_st_pr",\n "ns_st_tpr",\n "ns_st_sn",\n "ns_st_en",\n "ns_st_ep",\n "ns_st_tep",\n "ns_st_dt",\n "ns_st_ddt",\n "ns_st_tdt",\n "ns_st_tm",\n "ns_st_dtm",\n "ns_st_ttm",\n "ns_st_ge",\n "ns_st_tge",\n "ns_st_cs",\n "ns_st_ft",\n "ns_st_amg",\n "ns_st_ami",\n "ns_st_amp",\n "ns_st_amw",\n "ns_st_amt",\n "ns_st_ams",\n "ns_st_cde",\n "ns_st_cds",\n "ns_st_cdc",\n "ns_st_cda",\n "ns_st_cdm",\n "ns_st_cmt",\n "ns_st_amd",\n "ns_st_amo",\n "ns_st_sr",\n "ns_st_pl",\n "ns_st_ca",\n "ns_st_cp",\n "ns_st_fee",\n "ns_st_dskc",\n "ns_st_dska",\n "ns_st_skd",\n "ns_st_dskt",\n "ns_st_dpc",\n "ns_ap_i1",\n "ns_ap_i2",\n "ns_ap_i3",\n "ns_ap_i4",\n "ns_ap_i5",\n "ns_ap_i6",\n "cs_ucfr",\n "gdpr",\n "gdpr_p1t",\n "gdpr_li",\n "gdpr_pcc",\n "gdpr_purps",\n "gdpr_consent",\n "gpp",\n "gpp_sid",\n "cs_ucc",\n "cs_cmp_id",\n "cs_cmp_sv",\n "cs_cmp_rt",\n "c5",\n "c10",\n "c11",\n "c13",\n "c14",\n "c15",\n "c16",\n "ns_ap_install",\n "ns_ap_updated",\n "ns_ap_lastrun",\n "ns_ap_ft",\n "ns_ap_bt",\n "ns_ap_it",\n "ns_ap_res",\n "ns_ap_sd",\n "ns_ap_po",\n "ns_ap_ot",\n "ns_ap_lang",\n "ns_ap_miss",\n "ns_ap_jb",\n "ns_ap_oc",\n "ns_c",\n "ns_st_cev",\n "ns_st_lt",\n "ns_st_br",\n "ns_st_pbr",\n "ns_st_rt",\n "ns_st_prt",\n "ns_st_vo",\n "ns_st_pvo",\n "ns_st_ws",\n "ns_st_pws",\n "ns_st_rp",\n "ns_st_at",\n "ns_st_pat",\n "ns_st_vt",\n "ns_st_pvt",\n "ns_st_tt",\n "ns_st_ptt",\n "ns_st_cdn",\n "ns_st_pcdn",\n "ns_st_pb",\n "ns_st_dpt",\n "ns_st_ap",\n "ns_st_dap",\n "ns_st_et",\n "ns_st_det",\n "ns_st_upc",\n "ns_st_dupc",\n "ns_st_upa",\n "ns_st_dupa",\n "ns_st_lpc",\n "ns_st_dlpc",\n "ns_st_lpa",\n "ns_st_dlpa",\n "ns_st_bc",\n "ns_st_dbc",\n "ns_st_bt",\n "ns_st_dbt",\n "ns_st_bp",\n "ns_st_dtpc",\n "ns_st_dcpc",\n "ns_st_skc",\n "ns_st_ska",\n "ns_st_skt",\n "ns_st_pc",\n "ns_st_pp",\n "ns_st_pa",\n "c7",\n "c8",\n "c9",\n "ns_st_cu",\n "ns_st_amc",\n ],\n Dt: "http://b.scorecardresearch.com/p",\n Vn: "http://b.scorecardresearch.com/p2",\n Nt: "https://sb.scorecardresearch.com/p",\n Bn: "https://sb.scorecardresearch.com/p2",\n };\n n.exports = i;\n },\n function (n, t, e) {\n var i = e(22),\n r = e(0);\n n.exports = function () {\n var n = this,\n t = "undefined" != typeof encodeURIComponent ? encodeURIComponent : escape,\n e = "undefined" != typeof decodeURIComponent ? decodeURIComponent : unescape,\n o = "undefined" != typeof localStorage ? localStorage : null,\n u = {},\n s = o && t && e;\n r.extend(n, {\n dir: function (n) {\n if (!s) return null;\n var t = "cs_dir_" + n,\n i = u[t];\n if (i) return i.slice();\n var r = o.getItem(t);\n if (r) {\n i = [];\n for (var a = 0, f = (r = r.split("|")).length; a < f; a++) r[a].length > 0 && i.push(e(r[a]));\n return (u[t] = i), i.slice();\n }\n return null;\n },\n append: function (t, e, i) {\n if (s) {\n var r = n.read(t, e);\n r ? (r += i) : (r = i), n.write(t, e, r);\n }\n },\n write: function (e, r, a) {\n if (s) {\n var f = n.dir(e);\n f ||\n (!(function (n) {\n var t = "cs_dir_" + n;\n "function" == typeof o.setItem ? o.setItem(t, "") : (o[t] = ""), (u[t] = []);\n })(e),\n (f = [])),\n -1 == i.indexOf(r, f) &&\n (function (n, e) {\n var i = "cs_dir_" + n;\n try {\n "function" == typeof o.setItem ? o.setItem(i, o.getItem(i) + "|" + t(e)) : (o[i] = o.getItem(i) + "|" + t(e));\n } catch (r) {}\n u[i].push(e);\n })(e, r),\n (function (n, t, e) {\n try {\n "function" == typeof o.setItem ? o.setItem("cs_file_" + n + t, e) : (o["cs_file_" + n + t] = e);\n } catch (i) {}\n })(e, r, a);\n }\n },\n deleteFile: function (e, r) {\n if (!s) return !1;\n var a = n.dir(e);\n return (\n !!a &&\n -1 != i.indexOf(r, a) &&\n ((function (n, e) {\n var r = "cs_dir_" + n,\n s = u[r];\n s.splice(i.indexOf(e, s), 1);\n for (var a = [], f = 0, c = s.length; f < c; f++) a.push(t(s[f]));\n try {\n "function" == typeof o.setItem ? o.setItem(r, a.join("|")) : (o[r] = a.join("|")), "function" == typeof o.removeItem ? o.removeItem("cs_file_" + n + e) : delete o["cs_file_" + n + e];\n } catch (l) {}\n })(e, r),\n !0)\n );\n },\n read: function (t, e) {\n if (!s) return null;\n var r = n.dir(t);\n return r\n ? -1 == i.indexOf(e, r)\n ? null\n : (function (n, t) {\n try {\n return "function" == typeof o.getItem ? o.getItem("cs_file_" + n + t) : o["cs_file_" + n + t];\n } catch (e) {}\n })(t, e)\n : null;\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(2).M;\n (t.Tt = function (n) {\n var t = {};\n for (var e in n) {\n var i = n[e];\n null === i || i === undefined ? (t[e] = i) : (t[e] = n[e] + "");\n }\n return t;\n }),\n (t.Ot = function (n, t) {\n var e,\n i = [];\n for (e in n) (t && !t.test(e)) || !n.hasOwnProperty(e) || (i[i.length] = e);\n return i;\n }),\n (t.kt = function () {\n return "undefined" != typeof window && "undefined" != typeof document;\n }),\n (t.Rt = function (n, t, e, r) {\n var o = i.h(n, 1),\n u = { start: t, end: e };\n if (u.start >= u.end) return o;\n for (var s = 0; s < o.length; ++s) {\n var a = o[s];\n if (a.start <= u.start && u.end <= a.end) break;\n if (a.start <= u.start && u.start <= a.end && a.end <= u.end) break;\n if (u.start <= a.start && a.start <= u.end && u.end <= a.end) break;\n if (u.end <= a.start) break;\n }\n o.splice(s, 0, u);\n for (var f = 1; f < o.length; ) {\n var c = o[f],\n l = o[f - 1];\n l.start <= c.start && c.end <= l.end\n ? o.splice(f, 1)\n : c.start <= l.start && l.end <= c.end\n ? o.splice(f - 1, 1)\n : l.start <= c.start && c.start <= l.end + r && l.end <= c.end\n ? o.splice(f - 1, 2, { start: l.start, end: c.end })\n : c.start <= l.start && l.start - r <= c.end && c.end <= l.end\n ? o.splice(f - 1, 2, { start: c.start, end: l.end })\n : f++;\n }\n return o;\n }),\n (t.Mt = function (n) {\n for (var t in r) if (r.hasOwnProperty(t) && r[t] == n) return t;\n }),\n (t.Ut = function (n) {\n return n == r.IDLE || n == r.BUFFERING_BEFORE_PLAYBACK || n == r.SEEKING_BEFORE_PLAYBACK || n == r.PLAYBACK_NOT_STARTED;\n }),\n (t.xt = function (n, t) {\n for (var e = "hash:", i = 0; i < t.length; i++) n[t[i]] && (e += t[i] + ":" + n[t[i]] + ";");\n return e;\n });\n },\n function (n, t, e) {\n var i = e(1);\n n.exports = function (n) {\n var t = this;\n (t.Wt = n),\n (t.Ft = {}),\n (t.Vt = {}),\n (t.Bt = i.N()),\n (t.setLabel = function (n, e) {\n t.Vt[n] = e;\n });\n };\n },\n function (n, t) {\n var e = {};\n (e.qt = function () {\n try {\n return "undefined" != typeof document;\n } catch (n) {\n return !1;\n }\n }),\n (e.jt = function () {\n try {\n return "undefined" != typeof navigator;\n } catch (n) {\n return !1;\n }\n }),\n (e.qn = function () {\n if (!e.qt()) return !1;\n var n = !1;\n return ("undefined" != typeof document.hidden || "undefined" != typeof document.mozHidden || "undefined" != typeof document.msHidden || "undefined" != typeof document.webkitHidden) && (n = !0), n;\n }),\n (e.Gt = (function () {\n if (!e.qt()) return null;\n var n, t, i;\n "undefined" != typeof document.hidden\n ? ((n = "hidden"), (t = "visibilitychange"), (i = "visibilityState"))\n : "undefined" != typeof document.mozHidden\n ? ((n = "mozHidden"), (t = "mozvisibilitychange"), (i = "mozVisibilityState"))\n : "undefined" != typeof document.msHidden\n ? ((n = "msHidden"), (t = "msvisibilitychange"), (i = "msVisibilityState"))\n : "undefined" != typeof document.webkitHidden && ((n = "webkitHidden"), (t = "webkitvisibilitychange"), (i = "webkitVisibilityState"));\n var r = { hidden: n, Ht: t, state: i };\n return function () {\n return r;\n };\n })()),\n (e.jn = function () {\n if (!e.qt()) return !1;\n if (!e.qn()) return !1;\n var n = e.Gt();\n return document[n.hidden];\n }),\n (e.Gn = function (n) {\n if (e.qt() && e.qn()) {\n var t = e.Gt();\n document.addEventListener(t.Ht, n, !1);\n }\n }),\n (e.Hn = function (n) {\n if (e.qt() && e.qn()) {\n var t = e.Gt();\n document.removeEventListener(t.Ht, n, !1);\n }\n }),\n (e.Kt = function () {\n if (!e.jt()) return "";\n var n,\n t,\n i = navigator.userAgent || "",\n r = navigator.appName || "";\n return (\n -1 != (t = i.indexOf("Opera")) || -1 != (t = i.indexOf("OPR/"))\n ? (r = "Opera")\n : -1 != (t = i.indexOf("Android"))\n ? (r = "Android")\n : -1 != (t = i.indexOf("Chrome"))\n ? (r = "Chrome")\n : -1 != (t = i.indexOf("Safari"))\n ? (r = "Safari")\n : -1 != (t = i.indexOf("Firefox"))\n ? (r = "Firefox")\n : -1 != (t = i.indexOf("IEMobile"))\n ? (r = "Internet Explorer Mobile")\n : "Microsoft Internet Explorer" == r || "Netscape" == r\n ? (r = "Internet Explorer")\n : (n = i.lastIndexOf(" ") + 1) < (t = i.lastIndexOf("/"))\n ? (r = i.substring(n, t)).toLowerCase() == r.toUpperCase() && (r = navigator.appName)\n : (r = "unknown"),\n r\n );\n }),\n (e.Jt = function () {\n if (!e.jt()) return "";\n var n,\n t,\n i,\n r = navigator.userAgent || "",\n o = navigator.appName || "",\n u = navigator.appVersion ? "" + parseFloat(navigator.appVersion) : "";\n return (\n -1 != (t = r.indexOf("Opera"))\n ? ((u = r.substring(t + 6)), -1 != (t = r.indexOf("Version")) && (u = r.substring(t + 8)))\n : -1 != (t = r.indexOf("OPR/"))\n ? (u = r.substring(t + 4))\n : -1 != (t = r.indexOf("Android"))\n ? (u = r.substring(t + 11))\n : -1 != (t = r.indexOf("Chrome"))\n ? (u = r.substring(t + 7))\n : -1 != (t = r.indexOf("Safari"))\n ? ((u = r.substring(t + 7)), -1 != (t = r.indexOf("Version")) && (u = r.substring(t + 8)))\n : -1 != (t = r.indexOf("Firefox"))\n ? (u = r.substring(t + 8))\n : "Microsoft Internet Explorer" == o\n ? null != new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})").exec(r) && (u = parseFloat(RegExp.$1))\n : "Netscape" == o\n ? null != new RegExp("Trident/.*rv:([0-9]{1,}[.0-9]{0,})").exec(r) && (u = parseFloat(RegExp.$1))\n : (u = r.lastIndexOf(" ") + 1 < (t = r.lastIndexOf("/")) ? r.substring(t + 1) : "unknown"),\n -1 != (i = (u = u.toString()).indexOf(";")) && (u = u.substring(0, i)),\n -1 != (i = u.indexOf(" ")) && (u = u.substring(0, i)),\n -1 != (i = u.indexOf(")")) && (u = u.substring(0, i)),\n (n = parseInt("" + u, 10)),\n isNaN(n) && (u = "" + parseFloat(navigator.appVersion)),\n u\n );\n }),\n (e.Yt = function () {\n return "undefined" == typeof window || (window.ActiveXObject, !0);\n }),\n (e.kt = function () {\n return "undefined" != typeof window && "undefined" != typeof document;\n }),\n (e.zt = function () {\n return !!e.qt() && "s" === document.location.href.charAt(4);\n }),\n (n.exports.qn = e.qn),\n (n.exports.Gt = e.Gt),\n (n.exports.jn = e.jn),\n (n.exports.Kt = e.Kt),\n (n.exports.Jt = e.Jt),\n (n.exports.Yt = e.Yt),\n (n.exports.kt = e.kt),\n (n.exports.zt = e.zt),\n (n.exports.Gn = e.Gn),\n (n.exports.Hn = e.Hn);\n },\n function (n, t) {\n n.exports = {\n PERSISTENT_LABELS: 0,\n PARTNER: 1,\n PUBLISHER: 2,\n KEEP_ALIVE: 3,\n LIVE_TRANSMISSION_MODE: 4,\n OFFLINE_CACHE_MODE: 5,\n DISABLE: 6,\n TIME_WINDOW_ELAPSED: 7,\n START_LABELS: 8,\n LABEL_ORDER: 9,\n DISABLED_TCF_INTEGRATION: 10,\n Xt: 11,\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(29);\n function o() {\n var n = new r(),\n t = [],\n e = !0;\n i.extend(this, n),\n i.extend(this, {\n Qt: function (n) {\n t = n;\n },\n $t: function () {\n return t;\n },\n Zt: function (n) {\n e = n;\n },\n ne: function () {\n return e;\n },\n });\n }\n (o.prototype = Object.create(r.prototype)), (n.exports = o);\n },\n function (n, t, e) {\n var i = e(0),\n r = e(58),\n o = {\n te: function (n, t, e) {\n return -1 == n.indexOf("?") ? (n += "?") : (n += "&"), n + o.ee(t, e);\n },\n ie: function (n, t) {\n return i.extend(n, o.Tt(t || {}));\n },\n Tt: function (n) {\n var t = {};\n for (var e in n)\n if (n.hasOwnProperty(e)) {\n var i = n[e];\n null === i || i === undefined ? (t[e] = i) : (t[e] = n[e] + "");\n }\n return t;\n },\n ee: function (n, t) {\n var e = !1,\n r = "";\n n = i.h(n);\n for (var o = "undefined" != typeof encodeURIComponent ? encodeURIComponent : escape, u = 0; u < t.length; ++u) {\n var s = t[u];\n null != n[s] && (e && (r += "&"), (e = !0), (r += o(s) + "=" + o(n[s])), delete n[s]);\n }\n for (s in n) null != n[s] && (e && (r += "&"), (e = !0), (r += o(s) + "=" + o(n[s])));\n return r;\n },\n re: function (n) {\n return "unknown" == n ? "unknown" : r.oe(n) ? "1" : "0";\n },\n };\n n.exports = o;\n },\n function (n, t) {\n n.exports = { STANDARD: 1, LAN: 2, CACHE: 3 };\n },\n function (n, t) {\n var e = {};\n (e.indexOf = function (n, t) {\n var i = -1;\n return (\n e.forEach(t, function (t, e) {\n t == n && (i = e);\n }),\n i\n );\n }),\n (e.forEach = function (n, t, e) {\n try {\n if ("function" == typeof t)\n if (((e = void 0 !== e ? e : null), "number" != typeof n.length || "undefined" == typeof n[0])) {\n var i = "undefined" != typeof n.__proto__;\n for (var r in n) n.hasOwnProperty(r) && (!i || (i && "undefined" == typeof n.__proto__[r])) && "function" != typeof n[r] && t.call(e, n[r], r);\n } else for (var o = 0, u = n.length; o < u; o++) t.call(e, n[o], o);\n } catch (s) {}\n }),\n (t.indexOf = e.indexOf),\n (t.forEach = e.forEach);\n },\n function (n, t) {\n n.exports = require("os");\n },\n function (n, t) {\n var e = {};\n (e.ue = (function () {\n function n(n, t) {\n var u = n[0],\n s = n[1],\n a = n[2],\n c = n[3];\n (u = e(u, s, a, c, t[0], 7, -680876936)),\n (c = e(c, u, s, a, t[1], 12, -389564586)),\n (a = e(a, c, u, s, t[2], 17, 606105819)),\n (s = e(s, a, c, u, t[3], 22, -1044525330)),\n (u = e(u, s, a, c, t[4], 7, -176418897)),\n (c = e(c, u, s, a, t[5], 12, 1200080426)),\n (a = e(a, c, u, s, t[6], 17, -1473231341)),\n (s = e(s, a, c, u, t[7], 22, -45705983)),\n (u = e(u, s, a, c, t[8], 7, 1770035416)),\n (c = e(c, u, s, a, t[9], 12, -1958414417)),\n (a = e(a, c, u, s, t[10], 17, -42063)),\n (s = e(s, a, c, u, t[11], 22, -1990404162)),\n (u = e(u, s, a, c, t[12], 7, 1804603682)),\n (c = e(c, u, s, a, t[13], 12, -40341101)),\n (a = e(a, c, u, s, t[14], 17, -1502002290)),\n (u = i(u, (s = e(s, a, c, u, t[15], 22, 1236535329)), a, c, t[1], 5, -165796510)),\n (c = i(c, u, s, a, t[6], 9, -1069501632)),\n (a = i(a, c, u, s, t[11], 14, 643717713)),\n (s = i(s, a, c, u, t[0], 20, -373897302)),\n (u = i(u, s, a, c, t[5], 5, -701558691)),\n (c = i(c, u, s, a, t[10], 9, 38016083)),\n (a = i(a, c, u, s, t[15], 14, -660478335)),\n (s = i(s, a, c, u, t[4], 20, -405537848)),\n (u = i(u, s, a, c, t[9], 5, 568446438)),\n (c = i(c, u, s, a, t[14], 9, -1019803690)),\n (a = i(a, c, u, s, t[3], 14, -187363961)),\n (s = i(s, a, c, u, t[8], 20, 1163531501)),\n (u = i(u, s, a, c, t[13], 5, -1444681467)),\n (c = i(c, u, s, a, t[2], 9, -51403784)),\n (a = i(a, c, u, s, t[7], 14, 1735328473)),\n (u = r(u, (s = i(s, a, c, u, t[12], 20, -1926607734)), a, c, t[5], 4, -378558)),\n (c = r(c, u, s, a, t[8], 11, -2022574463)),\n (a = r(a, c, u, s, t[11], 16, 1839030562)),\n (s = r(s, a, c, u, t[14], 23, -35309556)),\n (u = r(u, s, a, c, t[1], 4, -1530992060)),\n (c = r(c, u, s, a, t[4], 11, 1272893353)),\n (a = r(a, c, u, s, t[7], 16, -155497632)),\n (s = r(s, a, c, u, t[10], 23, -1094730640)),\n (u = r(u, s, a, c, t[13], 4, 681279174)),\n (c = r(c, u, s, a, t[0], 11, -358537222)),\n (a = r(a, c, u, s, t[3], 16, -722521979)),\n (s = r(s, a, c, u, t[6], 23, 76029189)),\n (u = r(u, s, a, c, t[9], 4, -640364487)),\n (c = r(c, u, s, a, t[12], 11, -421815835)),\n (a = r(a, c, u, s, t[15], 16, 530742520)),\n (u = o(u, (s = r(s, a, c, u, t[2], 23, -995338651)), a, c, t[0], 6, -198630844)),\n (c = o(c, u, s, a, t[7], 10, 1126891415)),\n (a = o(a, c, u, s, t[14], 15, -1416354905)),\n (s = o(s, a, c, u, t[5], 21, -57434055)),\n (u = o(u, s, a, c, t[12], 6, 1700485571)),\n (c = o(c, u, s, a, t[3], 10, -1894986606)),\n (a = o(a, c, u, s, t[10], 15, -1051523)),\n (s = o(s, a, c, u, t[1], 21, -2054922799)),\n (u = o(u, s, a, c, t[8], 6, 1873313359)),\n (c = o(c, u, s, a, t[15], 10, -30611744)),\n (a = o(a, c, u, s, t[6], 15, -1560198380)),\n (s = o(s, a, c, u, t[13], 21, 1309151649)),\n (u = o(u, s, a, c, t[4], 6, -145523070)),\n (c = o(c, u, s, a, t[11], 10, -1120210379)),\n (a = o(a, c, u, s, t[2], 15, 718787259)),\n (s = o(s, a, c, u, t[9], 21, -343485551)),\n (n[0] = f(u, n[0])),\n (n[1] = f(s, n[1])),\n (n[2] = f(a, n[2])),\n (n[3] = f(c, n[3]));\n }\n function t(n, t, e, i, r, o) {\n return (t = f(f(t, n), f(i, o))), f((t << r) | (t >>> (32 - r)), e);\n }\n function e(n, e, i, r, o, u, s) {\n return t((e & i) | (~e & r), n, e, o, u, s);\n }\n function i(n, e, i, r, o, u, s) {\n return t((e & r) | (i & ~r), n, e, o, u, s);\n }\n function r(n, e, i, r, o, u, s) {\n return t(e ^ i ^ r, n, e, o, u, s);\n }\n function o(n, e, i, r, o, u, s) {\n return t(i ^ (e | ~r), n, e, o, u, s);\n }\n function u(n) {\n var t,\n e = [];\n for (t = 0; t < 64; t += 4) e[t >> 2] = n.charCodeAt(t) + (n.charCodeAt(t + 1) << 8) + (n.charCodeAt(t + 2) << 16) + (n.charCodeAt(t + 3) << 24);\n return e;\n }\n var s = "0123456789abcdef".split("");\n function a(n) {\n for (var t = "", e = 0; e < 4; e++) t += s[(n >> (8 * e + 4)) & 15] + s[(n >> (8 * e)) & 15];\n return t;\n }\n function f(n, t) {\n var e = (65535 & n) + (65535 & t);\n return (((n >> 16) + (t >> 16) + (e >> 16)) << 16) | (65535 & e);\n }\n return function (t) {\n return (function (n) {\n for (var t = 0; t < n.length; t++) n[t] = a(n[t]);\n return n.join("");\n })(\n (function (t) {\n var e,\n i = t.length,\n r = [1732584193, -271733879, -1732584194, 271733878];\n for (e = 64; e <= t.length; e += 64) n(r, u(t.substring(e - 64, e)));\n t = t.substring(e - 64);\n var o = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (e = 0; e < t.length; e++) o[e >> 2] |= t.charCodeAt(e) << (e % 4 << 3);\n if (((o[e >> 2] |= 128 << (e % 4 << 3)), e > 55)) for (n(r, o), e = 0; e < 16; e++) o[e] = 0;\n return (o[14] = 8 * i), n(r, o), r;\n })(t)\n );\n };\n })()),\n (n.exports = e.ue);\n },\n function (n, t) {\n n.exports = { DISABLED: 4, LAN: 3, MANUAL_FLUSH: 2, ENABLED: 1 };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(3).kn,\n o = e(11),\n u = e(1),\n s = e(27),\n a = { se: 2, ae: 3, fe: 4 },\n f = { ce: 1, le: 2, fe: 3 };\n function c(n, t) {\n var e,\n s,\n c,\n l,\n d,\n v,\n _,\n h,\n p,\n g,\n m,\n y,\n b,\n S,\n w,\n E,\n I,\n P,\n A,\n C,\n L,\n D = this,\n N = [],\n T = [];\n function O(n) {\n var t;\n (t = s ? f.ce : c ? f.le : f.fe) != l &&\n (function (n, t) {\n l != n &&\n (!(function (n, t) {\n switch (n) {\n case f.fe:\n break;\n case f.le:\n case f.ce:\n M();\n }\n for (var e = 0; e < T.length; ++e) T[e].de(n, t);\n })(l, t),\n (function (n, t) {\n switch (n) {\n case f.fe:\n break;\n case f.le:\n d || R();\n break;\n case f.ce:\n R(), v++;\n }\n for (var e = 0; e < T.length; ++e) T[e].ve(n, t);\n })(n, t),\n k(t, !0),\n (l = n));\n })(t, n);\n }\n function k(t, e) {\n var i = t - _;\n switch (l) {\n case f.ce:\n (h += i), (p += i);\n break;\n case f.le:\n (g += i), (m += i);\n break;\n case f.fe:\n (y += i), (b += i);\n }\n (_ = t), e && (n.put(o.rt, _), n.put(o.st, v), n.put(o.ft, h), n.put(o.ct, g), n.put(o.lt, y), n.put(o.dt, p), n.put(o.vt, m), n.put(o._t, b));\n }\n function R() {\n M(),\n A > 0 &&\n (L = r.setTimeout(function () {\n D._e(u.N(), !0), (L = null), R(), n.he();\n }, A));\n }\n function M() {\n L && (r.clearTimeout(L), (L = null));\n }\n function U(n) {\n var t;\n (t = c ? a.se : s ? a.ae : a.fe) != e &&\n (function (n, t) {\n e != n &&\n (!(function (n, t) {\n switch (n) {\n case a.se:\n case a.ae:\n S = t;\n break;\n case a.fe:\n W(t) || (w += t - E);\n }\n for (var e = 0; e < N.length; ++e) N[e].pe(n, t);\n })(e, t),\n (function (n, t) {\n switch (n) {\n case a.se:\n case a.ae:\n W(t);\n }\n for (var e = 0; e < N.length; ++e) N[e].ge(n, t);\n })(n, t),\n x(t, !0),\n (e = n));\n })(t, n);\n }\n function x(t, i) {\n var r = t - E;\n switch (e) {\n case a.se:\n case a.ae:\n (w += r), (S = t);\n }\n (E = t), i && (n.put(o.ot, E), n.put(o.ut, S), n.put(o.ht, w), n.put(o.gt, I), n.put(o.pt, C));\n }\n function W(t) {\n var e = !1;\n return t - S > 18e5 && ((I = t), n.put(o.gt, I), C++, (e = !0)), (S = t), e;\n }\n (v = 0),\n (d = !1),\n (l = f.fe),\n (e = a.fe),\n (s = !1),\n (c = !1),\n (p = 0),\n (m = 0),\n (b = 0),\n (g = 0),\n (h = 0),\n (y = 0),\n (w = 0),\n (I = -1),\n (P = -1),\n (_ = -1),\n (E = -1),\n (S = -1),\n (A = 0),\n (C = 0),\n (_ = n.get(o.rt, -1)),\n (E = n.get(o.ot, -1)),\n (S = n.get(o.ut, -1)),\n (v = n.get(o.st, 0)),\n (h = n.get(o.ft, 0)),\n (g = n.get(o.ct, 0)),\n (y = n.get(o.lt, 0)),\n (p = n.get(o.dt, 0)),\n (m = n.get(o.vt, 0)),\n (b = n.get(o._t, 0)),\n (w = n.get(o.ht, 0)),\n (C = n.get(o.pt, 0)),\n (function (t) {\n (P = n.get(o.yt, 0)), (I = n.get(o.gt, -1)) < 0 ? ((I = t), n.put(o.gt, I), (P = 0), n.put(o.yt, P), (S = I), C++) : (W(t) || ((w += t - E), n.put(o.ht, w)), (S = I));\n })(t),\n (function (t) {\n if (_ > 0) {\n var e = t - _;\n (y += e), n.put(o.lt, y), (b += e), n.put(o._t, b);\n }\n (E = _ = t), n.put(o.ot, E), n.put(o.rt, _), n.put(o.ut, S);\n })(t),\n i.extend(D, {\n me: function () {\n return l;\n },\n notifyUxActive: function (t) {\n c || ((c = !0), O(t), U(t), n.he());\n },\n notifyUxInactive: function (t) {\n c && ((c = !1), O(t), U(t), n.he());\n },\n notifyEnterForeground: function (t) {\n s || ((s = !0), O(t), U(t), n.he());\n },\n notifyExitForeground: function (t) {\n s && ((s = !1), O(t), U(t), n.he());\n },\n _e: function (n, t) {\n k(n, t), x(n, t);\n },\n ye: function (n, t) {\n (A = 1e3 * n), (d = t), n > 0 && (l == f.ce || (l == f.le && !t)) ? R() : M();\n },\n be: function (t) {\n t === undefined && (t = !0);\n var e = C;\n return t && ((C = 0), n.put(o.pt, C)), e;\n },\n Se: function (t) {\n t === undefined && (t = !0);\n var e = w;\n return t && ((w = 0), n.put(o.ht, w)), e;\n },\n we: function (t) {\n t === undefined && (t = !0);\n var e = y;\n return t && ((y = 0), n.put(o.lt, y)), e;\n },\n Ee: function (t) {\n t === undefined && (t = !0);\n var e = b;\n return t && (b = 0), n.put(o._t, b), e;\n },\n Ie: function (t) {\n t === undefined && (t = !0);\n var e = g;\n return t && ((g = 0), n.put(o.ct, g)), e;\n },\n Pe: function (t) {\n t === undefined && (t = !0);\n var e = h;\n return t && ((h = 0), n.put(o.ft, h)), e;\n },\n Ae: function (t) {\n t === undefined && (t = !0);\n var e = p;\n return t && (p = 0), n.put(o.dt, p), e;\n },\n Ce: function (t) {\n t === undefined && (t = !0);\n var e = v;\n return t && ((v = 0), n.put(o.st, v)), e;\n },\n Le: function (t) {\n t === undefined && (t = !0);\n var e = m;\n return t && (m = 0), n.put(o.vt, m), e;\n },\n De: function () {\n return I;\n },\n Ne: function () {\n return P;\n },\n Te: function (n) {\n T.push(n);\n },\n Oe: function (n) {\n var t = T.indexOf(n);\n -1 != t && T.splice(t, 1);\n },\n ke: function (n) {\n N.push(n);\n },\n Re: function (n) {\n var t = N.indexOf(n);\n -1 != t && N.splice(t, 1);\n },\n Me: function () {\n M();\n },\n });\n }\n (c.Ue = s.FOREGROUND_ONLY), (c.xe = 60), (c.We = a), (c.Fe = f), (n.exports = c);\n },\n function (n, t) {\n n.exports = { DISABLED: 2, FOREGROUND_AND_BACKGROUND: 1, FOREGROUND_ONLY: 0 };\n },\n function (n, t, e) {\n var i,\n r = e(0),\n o = e(3).kn,\n u = { Ve: 1, Be: 2, qe: 3 },\n s = +new Date();\n function a() {\n var n, t, e, i, a, f, c, l, d, v;\n function _() {\n (c = o.wn()), n && (g(), h());\n }\n function h() {\n var t = c ? l : d;\n (i = +new Date()),\n (a = i + t),\n (n = o.setInterval(function () {\n var n = (i = +new Date()) - a;\n ((a = i + t), Math.abs(n) > v) && p(n > 0 ? u.qe : i < e ? u.Be : u.Ve);\n }, t));\n }\n function p(n) {\n for (var t = 0; t < f.length; ++t) f[t](n);\n }\n function g() {\n n && (o.clearInterval(n), (n = null));\n }\n r.extend(this, {\n je: function (e) {\n e.Ge() && ((l = e.He()), (d = e.Ke()), (v = e.Je()), (c = o.wn()), n || h(), t || ((t = !0), o.En(_)));\n },\n Ye: function () {\n g(), t && (o.In(_), (t = !1));\n },\n ze: function (n) {\n f.push(n);\n },\n Xe: function (n) {\n var t = f.indexOf(n);\n -1 != t && f.splice(t, 1);\n },\n Qe: function (t) {\n var r;\n n ? (a < t && t - a > v ? (r = u.qe) : e > t ? (r = u.Be) : i > t && (r = u.Ve)) : e > t && (r = u.Be), r && (p(r), n && (g(), h())), (e = t);\n },\n }),\n (n = null),\n (t = !1),\n (f = []),\n (e = s),\n (c = !0),\n (l = -1),\n (d = -1),\n (v = 1e3);\n }\n (a.$e = 1e3),\n (a.ENABLED = !0),\n (a.Ze = u),\n (a.ni = function () {\n return i || (i = new a()), i;\n }),\n (n.exports = a);\n },\n function (n, t, e) {\n var i = e(0),\n r = e(8);\n n.exports = function () {\n var n = {},\n t = [],\n e = {};\n i.extend(this, {\n addLabels: function (t) {\n r.zn(n, t);\n },\n getLabels: function () {\n return n;\n },\n setLabel: function (t, e) {\n r.Yn(n, t, e);\n },\n getIncludedPublishers: function () {\n return t;\n },\n addIncludedPublisher: function (n) {\n t && -1 == t.indexOf(n) && t.push(n);\n },\n addPublisherLabels: function (n, t) {\n n && ((e[n] = e[n] || {}), r.zn(e[n], t));\n },\n setPublisherLabel: function (n, t, i) {\n n && ((e[n] = e[n] || {}), r.Yn(e[n], t, i));\n },\n getPublisherLabels: function (n) {\n return e[n] || {};\n },\n });\n };\n },\n function (n, t, e) {\n "use strict";\n Object.defineProperty(t, "v", { value: !0 }), (t.ti = t.ei = t.ii = void 0);\n var i = e(31),\n r = (function () {\n function n(n) {\n (this.ri = { oi: !1 }), (this.ui = []), (this.si = !1), (this.ai = n);\n }\n return (\n (n.prototype.fi = function () {\n return this.ci(), this.ri;\n }),\n (n.prototype.li = function (n) {\n this.ui.indexOf(n) > -1 || (this.ui.push(n), this.ci());\n }),\n (n.prototype.ci = function () {\n var n = this;\n if (!this.si) {\n this.si = !0;\n var t = +new Date(),\n e = -1;\n try {\n this.ai("addEventListener", 2, function (r, o) {\n o &&\n ((n.ri = { oi: !1 }),\n ("tcloaded" != r.eventStatus && "useractioncomplete" != r.eventStatus) ||\n (-1 == e && (e = +new Date() - t), (n.ri = (0, i.di)(r, { cs_cmp_id: r.cmpId, cs_cmp_sv: r.cmpVersion, cs_cmp_rt: e })), n.ri.oi && n.vi()));\n });\n } catch (r) {}\n }\n }),\n (n.prototype.vi = function () {\n for (var n = 0, t = this.ui; n < t.length; n++) {\n (0, t[n])();\n }\n }),\n n\n );\n })();\n (t.ii = r),\n (t.ei = function () {\n return "function" == typeof __tcfapi;\n }),\n (t.ti = function () {\n return __tcfapi;\n });\n },\n function (n, t, e) {\n "use strict";\n var i =\n (this && this._i) ||\n function () {\n return (i =\n Object.assign ||\n function (n) {\n for (var t, e = 1, i = arguments.length; e < i; e++) for (var r in (t = arguments[e])) Object.prototype.hasOwnProperty.call(t, r) && (n[r] = t[r]);\n return n;\n }).apply(this, arguments);\n };\n function r(n) {\n var e = {};\n if (!n) return e;\n for (var i = 0, r = t.hi; i < r.length; i++) {\n var o = r[i];\n e[o] = n.purpose.consents[o];\n }\n return e;\n }\n function o(n) {\n return { oi: !0, pi: !0, gi: !0, mi: i({ gdpr: 0, cs_ucc: 1 }, n) };\n }\n Object.defineProperty(t, "v", { value: !0 }),\n (t.yi = t.di = t.hi = t.bi = void 0),\n (t.bi = 77),\n (t.hi = [1, 7, 8, 9, 10]),\n (t.di = function (n, e) {\n return n.gdprApplies\n ? (function (n, t) {\n var e,\n r = {};\n (r.gdpr = 1), (r.gdpr_li = n.Si ? 1 : 0), (r.gdpr_pcc = n.wi), n.Ei && n.purposeOneTreatment ? ((r.gdpr_p1t = 1), (e = !0)) : ((r.gdpr_p1t = 0), (e = !!n.consents[1]));\n var o = !1;\n if (n.Ii) {\n o = e;\n var u = [];\n e && u.push(1), n.consents[7] && u.push(7), n.consents[8] && u.push(8), n.consents[9] && u.push(9), n.consents[10] && u.push(10), (r.gdpr_purps = u.join(","));\n } else r.gdpr_purps = "";\n return { oi: !0, pi: o, gi: !0, mi: i(i({ cs_ucc: 1 }, r), t) };\n })({ Ei: n.isServiceSpecific, purposeOneTreatment: n.purposeOneTreatment, Si: n.vendor.legitimateInterests[t.bi], Ii: n.vendor.consents[t.bi], consents: r(n), wi: n.publisherCC || "" }, i({}, e))\n : o(e);\n }),\n (t.yi = o);\n },\n function (n, t, e) {\n var i = e(0),\n r = e(8),\n o = e(54);\n function u() {\n var n,\n t,\n e,\n u,\n a,\n f = this;\n function c(n, t) {\n null != n && l("ns_st_ct", (t ? "ac" : "vc") + n);\n }\n function l(n, e) {\n r.Yn(t, n, e);\n }\n function d(n) {\n delete t[n];\n }\n (t = {}),\n (a = !1),\n (e = {}),\n (n = new o()),\n l("ns_st_li", "0"),\n l("ns_st_ty", "video"),\n i.extend(f, n),\n i.extend(f, {\n setMediaType: function (n) {\n (u = n) == s.LIVE || u == s.USER_GENERATED_LIVE ? l("ns_st_li", "1") : l("ns_st_li", "0"), c(u, a);\n },\n classifyAsAudioStream: function (n) {\n null == n && (n = !0), l("ns_st_ty", (a = n) ? "audio" : "video"), c(u, a);\n },\n classifyAsCompleteEpisode: function (n) {\n null == n && (n = !0), n ? l("ns_st_ce", "1") : d("ns_st_ce");\n },\n carryTvAdvertisementLoad: function (n) {\n null == n && (n = !0), n ? l("ns_st_ia", "1") : d("ns_st_ia");\n },\n setLength: function (n) {\n l("ns_st_cl", n);\n },\n setTotalSegments: function (n) {\n l("ns_st_tp", n);\n },\n setClipUrl: function (n) {\n l("ns_st_cu", n);\n },\n setFeedType: function (n) {\n l("ns_st_ft", n);\n },\n setVideoDimensions: function (n, t) {\n l("ns_st_cs", (n = n || 0) + "x" + (t = t || 0));\n },\n setStack: function (n, t) {\n e[n] = t;\n },\n getStandardLabels: function () {\n return i.extend({}, n.getStandardLabels(), t);\n },\n getMetadataLabels: function () {\n return i.extend({}, f.getStandardLabels(), f.getCustomLabels());\n },\n getStacks: function () {\n return e;\n },\n });\n }\n i.extend(u, o);\n var s = { LONG_FORM_ON_DEMAND: "12", SHORT_FORM_ON_DEMAND: "11", LIVE: "13", USER_GENERATED_LONG_FORM_ON_DEMAND: "22", USER_GENERATED_SHORT_FORM_ON_DEMAND: "21", USER_GENERATED_LIVE: "23", BUMPER: "99", OTHER: "00" };\n (u.ContentType = s), (u.ContentFeedType = { EAST_HD: "EASTHD", WEST_HD: "WESTHD", EAST_SD: "EASTSD", WEST_SD: "WESTSD", OTHER: "OTHER" }), (n.exports = u);\n },\n function (n, t, e) {\n var i,\n r = e(0),\n o = e(34),\n u = e(87),\n s = e(18),\n a = e(29),\n f = e(19),\n c = e(3).kn,\n l = e(26),\n d = e(27),\n v = e(90),\n _ = e(91),\n h = e(43),\n p = e(35),\n g = e(92),\n m = e(45),\n y = e(93),\n b = e(11),\n S = e(94),\n w = e(13),\n E = e(40),\n I = e(28),\n P = e(95),\n A = e(100),\n C = e(1);\n (i = new (function () {\n var n,\n t,\n e,\n i,\n L,\n D,\n N,\n T,\n O,\n k,\n R,\n M,\n U,\n x,\n W,\n F,\n V,\n B,\n q,\n j,\n G = this;\n function H() {\n var n;\n W.Pi() ||\n V.Ai(function (n) {\n n.pi && L.Ci();\n }),\n ((n = L.Di()).Li || n.Ni) && W.Ti(n.Oi);\n }\n function K(n) {\n j.push(function () {\n e.ki(n, X(), W);\n });\n }\n function J(r) {\n switch (r) {\n case s.DISABLE:\n !(function () {\n O && ((O = !1), R && c.clearTimeout(q), x && (T.stop(), I.ni().Ye()), (k || R) && (t.Oe(this), t.Re(this), t.Me(), F.Ri()), N && N.Mi());\n })();\n break;\n case s.TIME_WINDOW_ELAPSED:\n V.Ai(function (r) {\n !(function (r) {\n (e = new u(t, n, N, i, D, L, V, B)), (T = new h(n)).Ui(G), r.pi && z(), W.xi() >= 0 && t.ye(W.xi(), W.Wi() == d.FOREGROUND_ONLY), T.Fi(W.isKeepAliveMeasurementEnabled()), I.ni().je(W), (x = !0), n.he();\n })(r),\n (function () {\n for (var n = 0; n < j.length; ++n) {\n (0, j[n])();\n }\n j = [];\n })();\n });\n break;\n case s.PARTNER:\n case s.PUBLISHER:\n x &&\n (V.Ai(function (t) {\n t.pi && (z(), n.he());\n }),\n n.he());\n break;\n case s.OFFLINE_CACHE_MODE:\n break;\n case s.KEEP_ALIVE:\n x && T.Fi(W.isKeepAliveMeasurementEnabled());\n break;\n case s.DISABLED_TCF_INTEGRATION:\n V.disableTcfIntegration(), B.disableTcfIntegration();\n break;\n case s.Xt:\n c.Tn && B.enableFirstPartyCookie();\n }\n }\n function Y(n, e, i, r) {\n var o;\n k && x\n ? n()\n : U\n ? j.push(n)\n : i\n ? (j.push(n), K(e), (M = !0))\n : (M ||\n ((o = e),\n j.push(function () {\n t.notifyEnterForeground(o);\n }),\n (M = !0)),\n r || K(e),\n j.push(n),\n (U = !0));\n }\n function z() {\n for (var t = n.get(b.it, {}), i = W.getPublisherConfigurations(), r = "a".charCodeAt(0) - 1, o = 0; o < i.length; ++o) {\n var u = i[o],\n s = u.getPublisherId(),\n a = L.Vi(u.getPublisherSecret()),\n f = t[s],\n c = "";\n r >= "a".charCodeAt(0) && (c = "c" + String.fromCharCode(r) + "_"), r++, f && f != a && e.Bi(c + "cs_c12u", f), (t[s] = a), u.setPublisherUniqueDeviceId(a);\n }\n n.put(b.it, t);\n }\n function X(n) {\n var t;\n if (n instanceof a) t = n;\n else {\n (t = new a()), "object" == typeof n && t.addLabels(n);\n var e = W.getIncludedPublishers();\n if (e.length > 0) for (var i = 0; i < e.length; ++i) t.addIncludedPublisher(e[i]);\n }\n return t.getIncludedPublishers().length > 0 && W.getPartnerConfigurations().length > 0 && t.addIncludedPublisher(o.qi), t;\n }\n (i = new _(H)),\n (O = !0),\n (k = !1),\n (R = !1),\n (M = !1),\n (U = !1),\n (x = !1),\n (W = new o()),\n (V = new P()),\n (B = new A()),\n (j = []),\n W.addListener(J),\n r.extend(G, {\n configuration: W,\n start: function () {\n if ((W.ji(), !k && !R)) {\n R = !0;\n var i,\n r,\n o = C.N();\n if (\n ((F = new E(W)),\n (function (n) {\n var t = new y();\n t.Gi(n), t.Hi(n);\n })((n = new v(F))),\n (N = new p(n, F)),\n (i = new S(F, n, N)).Ki(),\n i.Ji(),\n (L = new m(n, V)),\n O)\n )\n (D = new g(n, W)),\n (t = new l(n, o)).Te(G),\n t.ke(G),\n U ||\n ((r = o),\n O &&\n Y(\n function () {\n 0 == e.Yi() && e.ki(r, X(), W);\n },\n r,\n !1,\n !0\n ),\n (U = !0)),\n (k = !0),\n n.he(),\n V.zi(),\n (q = c.setTimeout(function () {\n V.Ai(function (t) {\n t.pi || V.Xi(n), (q = null), W.Qi();\n });\n }, w.Pt));\n }\n },\n $i: function (n) {\n if (O) {\n var t = C.N();\n Y(function () {\n e.$i(t, X(n), W);\n }, t);\n }\n },\n notifyDistributedContentViewEvent: function (n, t) {\n if (W.getPartnerConfiguration(n)) {\n var e = new f();\n e.Zt(!1), e.addIncludedPublisher(o.qi), e.setLabel("ns_ap_ev", "distributed_view"), e.setLabel("cs_dc_di", n), e.setLabel("cs_dc_ci", t), G.Zi(e);\n }\n },\n Zi: function (n) {\n if (O) {\n var t = C.N();\n Y(function () {\n e.Zi(t, X(n), W);\n }, t);\n }\n },\n notifyUxActive: function () {\n if (O) {\n var n = C.N();\n Y(function () {\n t.notifyUxActive(n);\n }, n);\n }\n },\n notifyUxInactive: function () {\n if (O) {\n var n = C.N();\n Y(function () {\n t.notifyUxInactive(n);\n }, n);\n }\n },\n notifyEnterForeground: function () {\n if (O) {\n var n = C.N();\n Y(\n function () {\n t.notifyEnterForeground(n);\n },\n n,\n !0\n );\n }\n },\n notifyExitForeground: function () {\n if (O) {\n var n = C.N();\n Y(\n function () {\n t.notifyExitForeground(n);\n },\n n,\n !0\n );\n }\n },\n flushOfflineCache: function () {\n O &&\n k &&\n Y(function () {\n N.flush(W, !0), N.nr(), n.he();\n }, C.N());\n },\n clearOfflineCache: function () {\n O &&\n k &&\n Y(function () {\n N.Mi(), N.nr(), n.he();\n }, C.N());\n },\n clearInternalData: function () {\n O &&\n k &&\n Y(function () {\n n.clear(), n.he();\n }, C.N());\n },\n tr: function () {\n e.er(C.N(), X(), W), n.he();\n },\n de: function (n, t) {\n O &&\n n == l.Fe.fe &&\n (x\n ? T.start(h.ir)\n : j.push(function () {\n T.start(h.ir);\n }));\n },\n ve: function (n, t) {\n if (O) {\n var e = function () {\n n == l.Fe.fe &&\n (x\n ? T.stop()\n : j.push(function () {\n T.stop();\n }));\n };\n x ? e() : j.push(e);\n }\n },\n pe: function (n, t) {},\n ge: function (n, t) {},\n });\n })()),\n (n.exports = i);\n },\n function (n, t, e) {\n var i = e(0),\n r = e(8),\n o = e(1),\n u = e(35),\n s = e(25),\n a = e(13),\n f = e(4),\n c = e(26),\n l = e(40),\n d = e(18),\n v = e(85),\n _ = e(44),\n h = e(41),\n p = e(3),\n g = p.kn,\n m = e(28),\n y = f.Mn;\n function b() {\n var n,\n t,\n e,\n f,\n S,\n w,\n E,\n I,\n P,\n A,\n C,\n L,\n D,\n N,\n T,\n O,\n k,\n R,\n M,\n U,\n x,\n W,\n F,\n V,\n B,\n q,\n j,\n G,\n H,\n K,\n J,\n Y,\n z,\n X,\n Q,\n $,\n Z,\n nn,\n tn,\n en,\n rn = this;\n function on() {\n (function () {\n if (V.length > 0) {\n for (var n = !1, t = 0; t < N.length; ++t) {\n var e = N[t];\n if (-1 != V.indexOf(e.getPublisherId())) {\n n = !0;\n break;\n }\n }\n return !n && T.length > 0 && -1 != V.indexOf("21193409") && (n = !0), n;\n }\n return !0;\n })() &&\n (sn(),\n C &&\n (function () {\n var n = C.split("?");\n if (((C = n[0]), !n[1])) return;\n for (var t = n[1].split("&"), e = 0; e < t.length; e++) {\n var i = t[e].split("=");\n E[i[0]] = i[1] ? i[1] : "";\n }\n })(),\n (D && D != u.rr) || (D = n ? u.or : u.rr),\n T.length > 0 && 0 == N.length && un(),\n (f = !0),\n an(d.TIME_WINDOW_ELAPSED));\n }\n function un() {\n if (!w) {\n w = !0;\n var n = new _({ publisherId: J.getPublisherId(), publisherSecret: J.getPublisherSecret() });\n N.push(n), an(d.PUBLISHER);\n }\n }\n function sn() {\n !(function () {\n if (0 == N.length) return;\n for (var e = 0; e < N.length; ++e) {\n var i = N[e];\n i.getPublisherId() != J.getPublisherId() && ((n = i.isSecureTransmissionEnabled()), (P = i.isKeepAliveMeasurementEnabled()), (t = i.isHttpRedirectCachingEnabled()));\n }\n })(),\n (function () {\n if (0 == T.length) return;\n for (var e = 1 == N.length && N[0].getPublisherId() == J.getPublisherId(), i = 0; i < T.length; ++i) {\n var r = T[i];\n e && r.isSecureTransmissionEnabled() && (n = !0), (P = r.isKeepAliveMeasurementEnabled()), (t = r.isHttpRedirectCachingEnabled());\n }\n })();\n }\n function an(n) {\n for (var t = x.slice(), e = 0; e < t.length; ++e) t[e](n);\n }\n i.extend(rn, {\n ji: function () {\n p.Rn(), (X = -1 == X ? g.bn : X), (Q = -1 == Q ? g.Sn : Q), (R = R || g.tn()), (M = M || g.en());\n },\n addListener: function (n) {\n o.D(n) && x.push(n);\n },\n Qi: function () {\n S || ((S = !0), (T.length > 0 || N.length > 0) && on());\n },\n addClient: function (n) {\n n instanceof h &&\n (function (n) {\n if (n.getPartnerId()) {\n for (var t = 0; t < T.length; ++t) {\n if (T[t].getPartnerId() == n.getPartnerId()) return;\n }\n T.push(n), un(), S && (f ? sn() : on()), an(d.PARTNER);\n }\n })(n),\n n instanceof _ &&\n (function (n) {\n if (n.getPublisherId() && n.getPublisherSecret() && n.getPublisherId() != b.qi) {\n for (var t = 0; t < N.length; ++t) {\n if (N[t].getPublisherId() == n.getPublisherId()) return;\n }\n N.length > 0 && N[N.length - 1].getPublisherId() == J.getPublisherId() ? N.splice(N.length - 1, 0, n) : N.push(n), S && (f ? sn() : on()), an(d.PUBLISHER);\n }\n })(n);\n },\n ur: function () {\n var i = "";\n return (\n (i += n ? "1" : "0"),\n (i += P ? "1" : "0"),\n (i += t ? "1" : "0"),\n (i += e ? "1" : "0"),\n (i += z ? "1" : "0"),\n (i += Z ? "1" : "0"),\n (i += O ? "1" : "0"),\n (i += k ? "1" : "0"),\n (i += "-"),\n (i += A + ""),\n (i += L + ""),\n (i += H + ""),\n (i += "-"),\n (i += K.toString(16).toUpperCase()),\n (i += "-"),\n (i += B.toString(16).toUpperCase()),\n (i += "-"),\n (i += q.toString(16).toUpperCase()),\n (i += "-"),\n (i += G.toString(16).toUpperCase()),\n (i += "-"),\n (i += j.toString(16).toUpperCase()),\n (i += "-"),\n (i += (X / 100).toString(16).toUpperCase()),\n (i += "-"),\n (i += (Q / 100).toString(16).toUpperCase()),\n (i += "-"),\n (i += ($ / 100).toString(16).toUpperCase())\n );\n },\n sr: function (n) {\n for (var t = 0; t < N.length; ++t) {\n if (N[t].getPublisherId() == n) return !0;\n }\n return !1;\n },\n ar: function (n) {\n for (var t = 0; t < T.length; ++t) {\n if (T[t].getPartnerId() == n) return !0;\n }\n return !1;\n },\n getPartnerConfiguration: function (n) {\n for (var t = 0; t < T.length; ++t) {\n var e = T[t];\n if (e.getPartnerId() == n) return e;\n }\n return null;\n },\n getPublisherConfiguration: function (n) {\n for (var t = 0; t < N.length; ++t) {\n var e = N[t];\n if (e.getPublisherId() == n) return e;\n }\n return null;\n },\n cr: function () {\n for (var n = [], t = 0; t < N.length; ++t) {\n var e = N[t];\n n.push(e.getPublisherId());\n }\n return n;\n },\n getPublisherConfigurations: function () {\n return N;\n },\n getPartnerConfigurations: function () {\n return T;\n },\n getLabelOrder: function () {\n return U;\n },\n setLabelOrder: function (n) {\n n instanceof Array && ((U = i.h(n)), an(d.LABEL_ORDER));\n },\n lr: function () {\n return C;\n },\n setLiveEndpointUrl: function (n) {\n f || (C = n);\n },\n dr: function () {\n return D;\n },\n setOfflineFlushEndpointUrl: function (n) {\n f || (D = n);\n },\n tn: function () {\n return R;\n },\n setApplicationName: function (n) {\n f || (R = n);\n },\n setApplicationVersion: function (n) {\n f || (M = n);\n },\n en: function () {\n return M;\n },\n vr: function () {\n return g._n();\n },\n setPersistentLabel: function (n, t) {\n r.Yn(E, n, t) && an(d.PERSISTENT_LABELS);\n },\n removeAllPersistentLabels: function () {\n (E = {}), an(d.PERSISTENT_LABELS);\n },\n removePersistentLabel: function (n) {\n delete E[n], an(d.PERSISTENT_LABELS);\n },\n getPersistentLabels: function () {\n return E;\n },\n getPersistentLabel: function (n) {\n return E[n];\n },\n containsPersistentLabel: function (n) {\n return null != E[n];\n },\n addPersistentLabels: function (n) {\n r.zn(E, n), an(d.PERSISTENT_LABELS);\n },\n setStartLabel: function (n, t) {\n r.Yn(I, n, t) && an(d.START_LABELS);\n },\n removeAllStartLabels: function () {\n (I = {}), an(d.START_LABELS);\n },\n removeStartLabel: function (n) {\n delete I[n], an(d.START_LABELS);\n },\n addStartLabels: function (n) {\n r.zn(I, n), an(d.START_LABELS);\n },\n getStartLabels: function () {\n return I;\n },\n _r: function (n) {\n return I[n];\n },\n containsStartLabel: function (n) {\n return null != I[n];\n },\n isKeepAliveMeasurementEnabled: function () {\n return P;\n },\n isSecureTransmissionEnabled: function () {\n return n;\n },\n isHttpRedirectCachingEnabled: function () {\n return t;\n },\n setLiveTransmissionMode: function (n) {\n n && ((A = n), an(d.LIVE_TRANSMISSION_MODE));\n },\n hr: function () {\n return A;\n },\n enableImplementationValidationMode: function () {\n f || (e = !0);\n },\n pr: function () {\n return e;\n },\n setOfflineCacheMode: function (n) {\n n && ((L = n), an(d.OFFLINE_CACHE_MODE));\n },\n gr: function () {\n return L;\n },\n setUsagePropertiesAutoUpdateMode: function (n) {\n n && (f || (H = n));\n },\n Wi: function () {\n return H;\n },\n setUsagePropertiesAutoUpdateInterval: function (n) {\n f || (K = n);\n },\n xi: function () {\n return K;\n },\n setCacheMaxMeasurements: function (n) {\n f || (B = n);\n },\n mr: function () {\n return B;\n },\n setCacheMaxFlushesInARow: function (n) {\n f || (q = n);\n },\n yr: function () {\n return q;\n },\n setCacheMinutesToRetry: function (n) {\n f || (j = n);\n },\n br: function () {\n return j;\n },\n setCacheMeasurementExpiry: function (n) {\n f || (G = n);\n },\n Sr: function () {\n return G;\n },\n isEnabled: function () {\n return F;\n },\n wr: function () {\n return f;\n },\n disable: function () {\n F && ((F = !1), an(d.DISABLE));\n },\n disableTcfIntegration: function () {\n O && ((O = !1), an(d.DISABLED_TCF_INTEGRATION));\n },\n enableFirstPartyCookie: function () {\n f || ((k = !0), an(d.Xt));\n },\n removeListener: function (n) {\n if (o.D(n)) {\n var t = x.indexOf(n);\n -1 != t && x.splice(t, 1);\n }\n },\n Er: function () {\n return rn.getPublisherConfiguration("21193409");\n },\n setDebugEnabled: function (n) {\n f || (Y = n);\n },\n Ir: function () {\n return Y;\n },\n setSystemClockJumpDetectionEnabled: function (n) {\n f || (z = n);\n },\n Ge: function () {\n return z;\n },\n setSystemClockJumpDetectionInterval: function (n) {\n f || ((n = 100 * Math.floor(n / 100)), (X = n));\n },\n setSystemClockJumpDetectionAlternativeContextInterval: function (n) {\n f || ((n = 100 * Math.floor(n / 100)), (Q = n));\n },\n He: function () {\n return X;\n },\n Ke: function () {\n return Q;\n },\n setSystemClockJumpDetectionPrecision: function (n) {\n f || ((n = 100 * Math.floor(n / 100)), ($ = n));\n },\n Je: function () {\n return $;\n },\n setStorageWriteInterval: function (n) {\n (0 != nn && (n < l.Pr || n > l.Ar)) || ((tn = !0), (nn = n));\n },\n Cr: function () {\n return tn ? nn : g.X;\n },\n addIncludedPublisher: function (n) {\n -1 == V.indexOf(n) && V.push(n);\n },\n getIncludedPublishers: function () {\n return V;\n },\n addCrossPublisherUniqueDeviceIdChangeListener: function (n) {\n o.D(n) && -1 === W.indexOf(n) && W.push(n);\n },\n removeCrossPublisherUniqueDeviceIdChangeListener: function (n) {\n var t = W.indexOf(n);\n -1 !== t && W.splice(t, 1);\n },\n Ti: function (n) {\n if ("string" == typeof n) for (var t = 0; t < W.length; t++) W[t](n);\n },\n enableChildDirectedApplicationMode: function () {\n f || (Z = !0);\n },\n Pi: function () {\n return Z;\n },\n Lr: null,\n }),\n (F = !0),\n (w = !1),\n (f = !1),\n (S = !1),\n (j = u.Dr),\n (B = u.Nr),\n (q = u.Tr),\n (G = u.Or),\n (H = c.Ue),\n (K = c.xe),\n (E = {}),\n (I = {}),\n (U = a.Lt),\n (V = []),\n (J = new _({ publisherId: "21193409" })),\n (A = a.Ct),\n (L = s.ENABLED),\n (P = J.isKeepAliveMeasurementEnabled()),\n (n = !1),\n (t = !0),\n (e = !1),\n (x = []),\n (W = []),\n (T = []),\n (N = []),\n (O = !0),\n (k = !1),\n (Y = !1),\n (z = m.ENABLED),\n (X = -1),\n (Q = -1),\n ($ = m.$e),\n (Z = !1),\n (nn = l.kr),\n (tn = !1),\n (R = y),\n (M = y),\n (en = new v(rn)),\n (rn.Lr = en);\n }\n (b.qi = "21193409"), (n.exports = b);\n },\n function (n, t, e) {\n var i = e(0),\n r = e(20),\n o = e(59),\n u = e(25),\n s = e(83),\n a = e(24),\n f = e(3).kn,\n c = e(9),\n l = e(11),\n d = e(1);\n function v(n, t) {\n var e,\n v,\n _,\n h,\n p,\n g = this;\n function m(t, i) {\n var r = t.gr(),\n o = f.pn();\n return (\n r != u.DISABLED &&\n !(r == u.MANUAL_FLUSH && !i) &&\n (r != u.LAN || (o != c.WWAN && o != c.BLUETOOTH && o != c.DISCONNECTED)) &&\n !(function (t) {\n var e = 60 * t.br() * 1e3,\n i = t.yr();\n d.N() - n.get(l.Qn, -1) > e && (p = 0);\n return p > i;\n })(t) &&\n 0 != e.length &&\n !v\n );\n }\n function y(n) {\n v = !0;\n var t = n.dr(),\n i = {};\n i.c2 = n.getPublisherConfigurations()[0].getPublisherId();\n var u = "JetportGotAMaskOfThe" + n.getPublisherConfigurations()[0].getPublisherSecret() + "S.D_K-";\n (u = a(u)), (i.s = u);\n var f = r.te(t, i, n.getLabelOrder());\n !(function (n) {\n for (var t = d.N() - 24 * n.Sr() * 60 * 60 * 1e3, i = 0; i < e.length; ) {\n var r = e[i];\n parseInt(r.ns_ts) < t ? (e.splice(i, 1), h++) : i++;\n }\n })(n),\n (_ = e),\n (e = []),\n p++;\n var c = o.Rr(n, _, h);\n new s(f, c, g, n).Mr();\n }\n (v = !1),\n (e = []),\n (_ = null),\n (h = n.get(l.Xn, 0)),\n (p = 0),\n (function () {\n var n = t.getCache();\n if (null != n)\n try {\n var i = JSON.parse(n);\n if (!(i instanceof Array)) return;\n e = i;\n } catch (r) {}\n })(),\n i.extend(g, {\n nr: function () {\n f.K && n.put(l.Xn, h);\n },\n Ur: function () {\n if (f.K) {\n var n = JSON.stringify(e);\n t.storeCache(n);\n }\n },\n onSuccess: function () {\n (v = !1), (_ = null), (h = 0), g.Ur();\n },\n onFailure: function () {\n (v = !1), (e = _.concat(e)), (_ = null), g.Ur();\n },\n xr: function (n, t) {\n f.K &&\n t.gr() != u.DISABLED &&\n (!(function (n) {\n return e.length <= n.mr();\n })(t)\n ? h++\n : e.push(n.getLabels()));\n },\n Wr: function (n) {\n if (f.K) {\n for (var t = [], i = 0; i < n.length; ++i) t.push(n[i].getLabels());\n e = t.concat(e);\n }\n },\n flush: function (n, t) {\n f.K && m(n, t) && y(n);\n },\n Fr: function () {\n return e.length;\n },\n Mi: function () {\n e = [];\n },\n });\n }\n (v.Or = 31), (v.Nr = 2e3), (v.rr = "http://udm.scorecardresearch.com/offline"), (v.or = "https://udm.scorecardresearch.com/offline"), (v.Tr = 10), (v.Dr = 30), (n.exports = v);\n },\n function (n, t) {\n (t.Vr = function (n, t) {\n if ("undefined" != typeof atv && "undefined" != typeof XMLHttpRequest) {\n var e = new XMLHttpRequest();\n e.open("GET", n, !0),\n (e.onreadystatechange = function () {\n 4 == e.readyState && (t && t(e.status), (e = null));\n }),\n e.send();\n } else "undefined" != typeof atv && "function" == typeof atv.setTimeout ? t && atv.setTimeout(t, 0) : t && t();\n }),\n (t.Br = function (n, t, e) {\n if ("undefined" != typeof atv && "undefined" != typeof XMLHttpRequest) {\n var i = new XMLHttpRequest();\n i.open("POST", n, !0),\n (i.onreadystatechange = function () {\n 4 === i.readyState && (e && e(i.status), (i = null));\n }),\n i.send(t);\n } else "undefined" != typeof atv && "function" == typeof atv.setTimeout ? e && atv.setTimeout(e, 0) : e && e();\n });\n },\n function (n, t) {\n (t.qr = function (n, t) {\n "undefined" != typeof WinJS && "undefined" != typeof WinJS.xhr\n ? WinJS.xhr({ url: n }).then(\n function (n) {\n t && t(n.status);\n },\n function () {\n t && t();\n }\n )\n : "function" == typeof setTimeout\n ? t && setTimeout(t, 0)\n : t && t();\n }),\n (t.jr = function (n, t, e) {\n "undefined" != typeof WinJS && "undefined" != typeof WinJS.xhr\n ? WinJS.xhr({ type: "post", url: n, data: t, headers: { "Content-type": "application/xml" } }).then(\n function (n) {\n e && e(n.status);\n },\n function () {\n e && e();\n }\n )\n : "function" == typeof setTimeout\n ? e && setTimeout(e, 0)\n : e && e();\n });\n },\n function (n, t, e) {\n var i = e(17),\n r = [],\n o = !1;\n function u() {\n for (var n = 0; n < r.length; ++n) r[n]();\n }\n n.exports = {\n Gr: function (n) {\n r.push(n), o || (i.kt() && (window.addEventListener ? (window.addEventListener("unload", u, !1), (o = !0)) : window.attachEvent && (window.attachEvent("onunload", u), (o = !0))));\n },\n Hr: function (n) {\n for (var t = 0; t < r.length; ++t)\n if (r[t] == n) {\n r.splice(t, 1);\n break;\n }\n 0 == r.length && i.kt() && (window.removeEventListener ? (window.removeEventListener("unload", u, !1), (o = !1)) : window.detachEvent && (window.detachEvent("onunload", u), (o = !1)));\n },\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(6),\n o = e(1),\n u = e(17),\n s = e(4),\n a = e(12),\n f = e(5).Wn,\n c = e(5).Fn,\n l = e(7),\n d = e(14),\n v = e(10),\n _ = e(38),\n h = ("undefined" != typeof document && document) || undefined,\n p = s.Mn,\n g = s.Un,\n m = i.extend({}, r, {\n W: "html5",\n G: function () {\n return "undefined" != typeof Image ? a.apply(this, arguments) : f.apply(this, arguments);\n },\n H: c,\n Storage: l,\n J: v,\n Y: d,\n K: !0,\n X: 6e4,\n tn: function () {\n return (h && o.A(h.title) && h.title) || p;\n },\n in: function () {\n return this.un() + +new Date() + ~~(1e3 * Math.random());\n },\n rn: function () {\n return "72";\n },\n un: function () {\n return ("undefined" != typeof window && o.A(window.navigator) && o.P(window.navigator.platform, "")) || "";\n },\n sn: function () {\n return o.P(u.Kt() + " " + u.Jt(), "");\n },\n fn: function () {\n return "html";\n },\n cn: function () {\n return "5";\n },\n ln: function () {\n var n, t;\n "undefined" != typeof window && window.screen && window.screen.width && (n = window.screen.width), "undefined" != typeof window && window.screen && window.screen.width && (t = window.screen.height);\n var e = 1;\n return "undefined" != typeof window && window.devicePixelRatio && (e = window.devicePixelRatio), n > 0 && t > 0 ? (n *= e) + "x" + (t *= e) : g;\n },\n dn: function () {\n var n, t;\n "undefined" != typeof window && window.innerWidth && (n = window.innerWidth), "undefined" != typeof window && window.innerHeight && (t = window.innerHeight);\n var e = 1;\n return "undefined" != typeof window && window.devicePixelRatio && (e = window.devicePixelRatio), n > 0 && t > 0 ? (n *= e) + "x" + (t *= e) : g;\n },\n vn: function () {\n return ("undefined" != typeof window && o.A(window.navigator) && o.P(window.navigator.language, "")) || p;\n },\n Pn: function (n) {\n _.Gr(n);\n },\n An: function (n) {\n _.Hr(n);\n },\n });\n n.exports = m;\n },\n function (n, t, e) {\n var i = e(0),\n r = e(3).kn,\n o = e(84);\n function u(n) {\n var t, e, u, s, a, f;\n function c() {\n u && ((u = !1), t.storeProperties(e)), a && ((a = !1), t.storeCache(s));\n }\n function l() {\n if (-1 == f) {\n var t = n.Cr();\n 0 == t\n ? c()\n : (f = r.setTimeout(function () {\n (f = -1), c();\n }, t));\n }\n }\n i.extend(this, {\n storeProperties: function (n) {\n (e = n), (u = !0), l();\n },\n getProperties: function () {\n return u ? e : t.getProperties();\n },\n storeCache: function (n) {\n (s = n), (a = !0), l(), t.storeCache(n);\n },\n getCache: function () {\n return a ? s : t.getCache();\n },\n Ri: function () {\n -1 != f && (r.clearTimeout(f), (f = -1));\n },\n }),\n (t = "function" == typeof r.Storage ? new r.Storage(n) : new o()),\n (e = ""),\n (s = ""),\n (u = !1),\n (a = !1),\n (f = -1);\n }\n (u.Pr = 6e4), (u.Ar = 3e5), (u.kr = 0), (n.exports = u);\n },\n function (n, t, e) {\n var i = e(0),\n r = e(42);\n n.exports = function (n) {\n var t, e, o;\n function u(t, e) {\n return n && null != n[t] ? n[t] : e;\n }\n (t = new r((n = n || {}))),\n i.extend(this, t),\n i.extend(this, {\n getPartnerId: function () {\n return e;\n },\n getExternalClientId: function () {\n return o;\n },\n }),\n (e = u("partnerId", "")),\n (o = u("externalClientId", ""));\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(8),\n o = e(13),\n u = e(43);\n n.exports = function (n) {\n var t, e, s, a, f;\n function c(t, e) {\n return n && null != n[t] ? n[t] : e;\n }\n i.extend(this, {\n addPersistentLabels: function (n) {\n r.zn(e, n);\n },\n setPersistentLabel: function (n, t) {\n r.Yn(e, n, t);\n },\n removeAllPersistentLabels: function () {\n e = {};\n },\n removePersistentLabel: function (n) {\n delete e[n];\n },\n getStartLabels: function () {\n return t;\n },\n getPersistentLabels: function () {\n return e;\n },\n containsPersistentLabel: function (n) {\n return null != e[n];\n },\n containsStartLabel: function (n) {\n return null != t[n];\n },\n getPersistentLabel: function (n) {\n return e[n];\n },\n isKeepAliveMeasurementEnabled: function () {\n return s;\n },\n isSecureTransmissionEnabled: function () {\n return a;\n },\n isHttpRedirectCachingEnabled: function () {\n return f;\n },\n }),\n (s = u.ENABLED),\n (a = o.At),\n (f = o.It),\n (e = {}),\n (t = c("startLabels", (t = {}))),\n (e = c("persistentLabels", e)),\n (s = c("keepAliveMeasurement", s)),\n (a = c("secureTransmission", a)),\n (f = c("httpRedirectCaching", f));\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(3).kn,\n o = e(11),\n u = e(1);\n function s(n) {\n var t,\n e,\n s,\n a,\n f = this;\n (t = !0),\n (e = !1),\n i.extend(f, {\n start: function (i) {\n f.stop(),\n t &&\n ((e = !0),\n (s = r.setTimeout(function () {\n if (\n ((function () {\n if (t) {\n var e = n.get(o.Qn, 0),\n i = u.N() - e;\n e > 0 && i > 86399e3 && a && a.tr();\n }\n })(),\n e)\n ) {\n var i = n.get(o.Qn, 0);\n if (0 == i) f.start(3e3);\n else {\n var r = 864e5 - (u.N() - i);\n f.start(r);\n }\n }\n }, i)));\n },\n stop: function () {\n e && ((e = !1), r.clearTimeout(s), (s = null));\n },\n Fi: function (n) {\n t = n;\n },\n Ui: function (n) {\n a = n;\n },\n });\n }\n (s.ENABLED = !0), (s.ir = 3e3), (n.exports = s);\n },\n function (n, t, e) {\n var i = e(0),\n r = e(42),\n o = e(45);\n n.exports = function u(n) {\n var t, e, s, a, f;\n function c(t, e) {\n return n && null != n[t] ? n[t] : e;\n }\n (n = i.h(n || {})),\n (e = c("publisherId", e)),\n (f = c("publisherUniqueDeviceIdListener")),\n (s = o.Kr(e)),\n (a = null),\n (t = new r(n)),\n i.extend(this, t),\n i.extend(this, {\n getPublisherId: function () {\n return e;\n },\n getPublisherSecret: function () {\n return s;\n },\n getPublisherUniqueDeviceId: function () {\n return a;\n },\n setPublisherUniqueDeviceId: function (n) {\n (a = n), "function" == typeof f && f(n);\n },\n copy: function (t) {\n return new u((t = i.extend(n, t)));\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(3).kn,\n o = e(11),\n u = e(24),\n s = e(86);\n function a(n) {\n var t = null,\n e = null,\n a = !0,\n f = !1,\n c = {};\n i.extend(this, {\n Ci: function () {\n var i = (r.nn() || "null").split(" "),\n l = i[0] && "null" != i[0] ? i[0] : null;\n if (null == l) return (t = null), (e = null), void (c = { Oi: null, Li: !1, Ni: a });\n e || ((t = n.get(o.tt, null)), (e = n.get(o.et, null))),\n e\n ? ("none" == l && "none" == e) ||\n (!a && "none" == e) ||\n ("none" != l && u(l) == t) ||\n ((f = !0), a && "none" != l ? ((t = u(l)), (e = s(l))) : ((t = null), (e = "none")), n.put(o.et, e), null == t ? n.remove(o.tt) : n.put(o.tt, t))\n : ("none" == l ? ((t = null), (e = "none")) : ((t = u(l)), (e = s(l))), n.put(o.et, e), null == t ? n.remove(o.tt) : n.put(o.tt, t)),\n (c = { Oi: e, Li: f, Ni: a }),\n (a = !1);\n },\n Di: function () {\n return c;\n },\n nr: function () {},\n Vi: function (n) {\n var t = r["in"](),\n e = r.rn();\n return u(t + n) + "-cs" + e;\n },\n });\n }\n (a.Kr = function (n) {\n return u("zutphen2011comScore@" + n);\n }),\n (n.exports = a);\n },\n function (n, t, e) {\n var i = e(0);\n n.exports = function () {\n var n,\n t = {};\n i.extend(this, {\n Jr: function (n) {\n return null != t[n];\n },\n Yr: function (n) {\n return t[n];\n },\n addLabels: function (n) {\n i.extend(t, n);\n },\n setLabel: function (n, e) {\n t[n] = e + "";\n },\n zr: function () {\n return "start" == t.ns_ap_ev;\n },\n getLabels: function () {\n return t;\n },\n setLiveEndpointUrl: function (t) {\n n = t;\n },\n lr: function () {\n return n;\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(2).R,\n r = e(0),\n o = e(16);\n function u(n) {\n var t,\n e,\n u,\n s = this;\n function a() {\n var t = new o(i.KEEPALIVE);\n n.Qr().Xr(t), s.start();\n }\n function f() {\n null != u && (n.Qr().$r().clearTimeout(u), (u = null));\n }\n r.extend(s, {\n start: function () {\n t && (f(), (u = n.Qr().$r().setTimeout(a, e)));\n },\n stop: function () {\n t && f();\n },\n }),\n (t = n.getConfiguration().Zr),\n (e = n.getConfiguration().no);\n }\n (u.to = 12e5), (u.eo = 6e4), (u.ENABLED = !0), (n.exports = u);\n },\n function (n, t, e) {\n var i = e(0),\n r = e(1);\n function o(n) {\n var t,\n e,\n o,\n u,\n s,\n a,\n f = this;\n function c() {\n s++, (u = 0), f.resume(), n.Qr().io();\n }\n function l() {\n null != o && (n.Qr().$r().clearTimeout(o), (o = null));\n }\n i.extend(this, {\n ro: function () {\n return s;\n },\n oo: function (n) {\n var t = 0;\n if (null != e)\n for (var i = 0; i < e.length; i++) {\n var r = e[i],\n o = r.uo;\n if (!o || n < o) {\n t = r.interval;\n break;\n }\n }\n return t;\n },\n resume: function () {\n if (t) {\n l();\n var e = f.oo(n.fo().ao().so() + (r.N() - n.fo().ao().co()));\n if (e > 0) {\n var i = u > 0 ? u : e;\n (a = r.N() + i), (o = n.Qr().$r().setTimeout(c, i));\n }\n u = 0;\n }\n },\n pause: function () {\n if (t) {\n l();\n var e = f.oo(n.fo().ao().so() + (r.N() - n.fo().ao().co()));\n u = e - ((n.fo().ao().so() + (r.N() - n.fo().ao().co())) % e);\n }\n },\n reset: function () {\n t && (l(), (u = 0), (s = 0));\n },\n lo: function (n) {\n return null == o ? -1 : a - n;\n },\n }),\n (u = 0),\n (s = 0),\n (t = n.getConfiguration()["do"]),\n (e = i.h(n.getConfiguration().vo));\n }\n (o.ENABLED = !0),\n (o._o = [\n { uo: 6e4, interval: 1e4 },\n { uo: null, interval: 6e4 },\n ]),\n (o.ho = function (n, t) {\n if (n.length != t.length) return !1;\n for (var e = 0; e < n.length; ++e) {\n var i = n[e],\n r = t[e];\n if (i.uo != r.uo) return !1;\n if (i.interval != r.interval) return !1;\n }\n return !0;\n }),\n (n.exports = o);\n },\n function (n, t, e) {\n var i = e(0),\n r = e(1),\n o = e(15),\n u = e(50),\n s = e(51).po,\n a = e(2).M,\n f = e(2).R,\n c = e(4),\n l = e(52),\n d = l.AdvertisementType,\n v = e(32),\n _ = e(55),\n h = e(121),\n p = e(16);\n function g(n) {\n var t,\n e,\n g,\n m,\n y,\n b,\n S,\n w,\n E,\n I,\n P,\n A,\n C,\n L,\n D,\n N,\n T,\n O,\n k,\n R,\n M,\n U,\n x,\n W,\n F,\n V,\n B,\n q,\n j,\n G,\n H,\n K,\n J = this;\n i.extend(this, {\n mo: function () {\n var t = e,\n i = new v(),\n r = _.xt(i);\n (e = new _(n, i, r)), _.mo(t, e);\n },\n addLabels: function (n) {\n null != n && i.extend(w, n);\n },\n getLabels: function () {\n return w;\n },\n setLabel: function (n, t) {\n var e = {};\n (e[n] = t), J.addLabels(e);\n },\n Yr: function (n) {\n return w[n];\n },\n ao: function () {\n return e;\n },\n zn: function (n, t) {\n var r = n;\n (r.ns_st_pa = y + (isNaN(b) ? 0 : t - b) + ""),\n (r.ns_st_pp = T + ""),\n (r.ns_st_sp = O + ""),\n (r.ns_st_bp = k + ""),\n C || (r.ns_st_pb = "1"),\n e.yo() && ((r.ns_st_ppc = L + ""), (r.ns_st_dppc = L - D + ""), (r.ns_st_psq = N + "")),\n (r.ns_st_sc = M + ""),\n i.extend(r, S);\n },\n bo: function () {\n O++;\n },\n So: function () {\n T++;\n },\n wo: function (n) {\n if (!isNaN(b)) {\n var t = J.so();\n (t += n - b), J.Eo(t), (b = NaN);\n }\n },\n Io: function (n) {\n if (!isNaN(m)) {\n var t = J.Po();\n (t += n - m), J.Ao(t), (m = NaN);\n }\n },\n Po: function () {\n return k;\n },\n Ao: function (n) {\n k = n;\n },\n so: function () {\n return y;\n },\n Co: function (n) {\n m = n;\n },\n Lo: function () {\n return m;\n },\n Eo: function (n) {\n y = n;\n },\n Do: function (n) {\n b = n;\n },\n co: function () {\n return b;\n },\n No: function () {\n return T;\n },\n To: function (n) {\n T = n;\n },\n Oo: function () {\n return P;\n },\n ko: function (n, i, r) {\n var o;\n if ((e.Ro(e.Mo()), e.Uo(e.xo()), !q || (n != a.IDLE && n != a.PLAYBACK_NOT_STARTED && n != a.BUFFERING_BEFORE_PLAYBACK && n != a.SEEKING_BEFORE_PLAYBACK && i != a.PLAYING)))\n if (n == a.IDLE) {\n var s = t.Wo();\n o = u.Fo(e.Yr("ns_st_ad")) || (j && 1 == F) ? 0 : I[e.Vo()] && s && s.Vo() == e.Vo() ? e.Bo() : 0;\n } else o = n == a.PLAYING ? e.qo(r) : e.Bo();\n else (o = V), (q = !1);\n e.jo(o), e.Go(r);\n },\n Ho: function (n, t, i) {\n var r,\n o = e.Ko();\n e.Ro(e.Mo()),\n e.Uo(e.xo()),\n e.Jo()\n ? n == a.IDLE || n == a.BUFFERING_BEFORE_PLAYBACK || n == a.SEEKING_BEFORE_PLAYBACK || n == a.PLAYBACK_NOT_STARTED || t == a.PLAYING\n ? (G ? ((G = !1), (o = B)) : (o = e.Yo(i)), (r = e.zo(i, o)))\n : n == a.PLAYING\n ? ((o = e.Xo(i)), (r = e.Qo(i)))\n : ((o = e.Yo(i)), (r = e.zo(i, o)))\n : (G && ((G = !1), (o = B)), (r = e.$o() - o)),\n e.jo(r),\n e.Go(i),\n e.Zo(o),\n e.nu(i);\n },\n tu: function () {\n var n,\n i = t.Wo();\n (n = u.Fo(e.Yr("ns_st_ad")) ? 1 : j ? F : I[e.Vo()] && I[e.Vo()] && i && i.Vo() == e.Vo() ? (e.eu() ? e.iu() : e.iu() + 1) : 1), e.ru(n), (j = !1);\n },\n ou: function () {\n t.uu(e), g && t.uu(g);\n var n = e.su();\n if ((A < n && (A = n), u.Fo(e.Yr("ns_st_ad")))) {\n var i = o.xt(e.getLabels(), s),\n r = parseInt(e.Yr("ns_st_an"));\n if (((null == x[i] || x[i] < r) && (x[i] = r), (W[e.Vo()] = K), e.Jr("ns_st_rcn"))) {\n var a = parseInt(e.Yr("ns_st_rcn"));\n A < a && (A = a);\n }\n }\n E && (J.bo(), J.au(0), (E = !1)), (P = !0);\n },\n fu: function () {\n (I[e.Vo()] = !0), u.Fo(e.Yr("ns_st_ad")) || (1 == e.iu() ? (H[e.Vo()] = 1) : (null == H[e.Vo()] && (H[e.Vo()] = 0), H[e.Vo()]++));\n for (var n = 0; n < U.length; ++n) U[n]();\n },\n cu: function (n) {\n U.push(n);\n },\n lu: function () {\n return L;\n },\n du: function () {\n L++;\n },\n vu: function (n) {\n C = n;\n },\n au: function (n) {\n N = n;\n },\n _u: function () {\n N++;\n },\n hu: function () {\n return S.ns_st_id;\n },\n pu: function (n) {\n n < 0 || (S.ns_st_ca = n + "");\n },\n gu: function (n) {\n n < 1 || (S.ns_st_cp = n + "");\n },\n setMediaPlayerName: function (n) {\n n && (S.ns_st_mp = n + "");\n },\n setMediaPlayerVersion: function (n) {\n n && (S.ns_st_mv = n + "");\n },\n setImplementationId: function (n) {\n n && (S.cs_impid = n + "");\n },\n loopPlaybackSession: function () {\n for (var n in I)\n if (I.hasOwnProperty(n)) {\n var i = t.ao(n);\n i && (i.Ro(0), i.mu(0), i.yu(!1), i.setDvrWindowLength(0), i.Zo(0)), (I[n] = !1);\n }\n J.startFromSegment(1), e.bu(!0), (E = !0);\n },\n startFromSegment: function (n) {\n (F = n), (j = !0);\n },\n startFromPosition: function (n) {\n (V = n), (q = !0);\n },\n startFromDvrWindowOffset: function (n) {\n (B = n), (G = !0);\n },\n Su: function (n) {\n e.yo() && (D = parseInt(n.ns_st_ppc)), (R = !1);\n },\n wu: function (i) {\n if ((n.Iu().Eu("setMetadata", i), i && (i instanceof v || i instanceof l))) {\n var r = i.getMetadataLabels();\n if ((n.Iu().Pu("Passed labels:", r), u.Fo(r.ns_st_ad))) {\n if (null == r.ns_st_bn) {\n var c = r.ns_st_ct;\n if ((c = null != c ? c.slice(2) : null) == d.ON_DEMAND_PRE_ROLL || c == d.BRANDED_ON_DEMAND_PRE_ROLL) r.ns_st_bn = "1";\n else if (c == d.ON_DEMAND_POST_ROLL || c == d.BRANDED_ON_DEMAND_POST_ROLL) r.ns_st_bn = "1";\n else if (c == d.ON_DEMAND_MID_ROLL || c == d.BRANDED_ON_DEMAND_MID_ROLL) {\n var h = "";\n i instanceof l && i.getRelatedContentMetadata() && (h = _.xt(i.getRelatedContentMetadata().getMetadataLabels())), h && null != H[h] ? (r.ns_st_bn = H[h]) : (r.ns_st_bn = "1");\n }\n }\n if (null == r.ns_st_an) {\n var m = o.xt(r, s),\n y = 1;\n null != x[m] && (y = x[m] + 1), (r.ns_st_an = y + "");\n }\n !(function () {\n if (null == r.ns_st_rcn) {\n var n,\n e = "";\n if ((i instanceof l && i.getRelatedContentMetadata() && (e = _.xt(i.getRelatedContentMetadata().getMetadataLabels())), e))\n if (t.Au(e)) {\n n = t.ao(e).su();\n } else n = null == r.ns_st_cn ? A + 2 : parseInt(r.ns_st_cn) + 1;\n else n = 0;\n r.ns_st_rcn = n + "";\n }\n })();\n }\n var b = _.xt(r),\n S = "";\n i instanceof l && i.getRelatedContentMetadata() && (S = _.xt(i.getRelatedContentMetadata().getMetadataLabels()));\n var w = e;\n if (b == w.Vo() && !(j || q || E || null != r.ns_st_pn)) return n.Iu().Pu("Updating existing asset labels with the newly provided ones:", r), w.Cu(), w.Lu(), w.addLabels(r), void J.Du(i, w);\n var I,\n P = n.Tu().Nu();\n if (P != a.IDLE) {\n n.Iu().Pu("Ending the current Clip. It was in state:", o.Mt(P));\n var C = new p(f.END);\n (C.Vt.ns_st_ae = "1"), n.Qr().Ou(C);\n }\n if (\n (t.Au(b) ? ((I = t.ao(b)).ku(), I.Cu(), I.Lu(), I.addLabels(r)) : ((I = new _(n, r, b)), null == r.ns_st_cn ? I.Ru(A + 1) : I.Ru(parseInt(r.ns_st_cn))),\n (function () {\n if (i instanceof l && i.getRelatedContentMetadata()) {\n var e = i.getRelatedContentMetadata().getMetadataLabels(),\n r = _.xt(e);\n t.Au(r) ? (g = t.ao(r)) : (g = new _(n, e, r)).Ru(I.su() + 1);\n } else g = null;\n })(),\n u.Fo(I.Yr("ns_st_ad")) &&\n (function () {\n var n;\n if (S)\n if (t.Au(S)) {\n var e = I.Yr("ns_st_ct");\n n = (e = null != e ? e.slice(2) : null) == d.ON_DEMAND_PRE_ROLL || e == d.BRANDED_ON_DEMAND_PRE_ROLL ? 0 : t.ao(S).Mo();\n } else n = 0;\n else n = 0;\n I.Mu("ns_st_cpo", n + "");\n })(),\n J.Du(i, I),\n E && I.bu(!0),\n (e = I),\n (K = S),\n R || M++,\n (R = !0),\n n.getConfiguration().Uu)\n )\n if (P == a.PLAYING) {\n n.Iu().Pu("Resuming the new Asset.");\n var L = new p(f.PLAY);\n (L.Vt.ns_st_ae = "1"), n.Qr().Ou(L);\n } else (P != a.BUFFERING_DURING_PLAYBACK && P != a.PAUSED_DURING_BUFFERING) || (n.Iu().Pu("Starting buffering the new Asset."), n.Qr().Ou(new p(f.BUFFER)), n.Qr().xu());\n } else n.Iu().Pu("Ignoring API call. An AssetMetadata object was expected and received instead:", i);\n },\n Du: function (n, t) {\n if (n instanceof l) {\n var e = n.getStacks(),\n i = n.getRelatedContentMetadata() ? n.getRelatedContentMetadata().getStacks() : null,\n r = [];\n for (var o in e)\n if (e.hasOwnProperty(o)) {\n var u = e[o],\n s = (i && i[o]) || null;\n r.push(o);\n var a = u.getMetadataLabels(s);\n t.Wu(o, a);\n }\n if (i)\n for (var f in i)\n if (i.hasOwnProperty(f) && -1 == r.indexOf(f)) {\n var c = i[f];\n t.Wu(f, c.getMetadataLabels());\n }\n } else {\n var d = n.getStacks();\n for (var v in d)\n if (d.hasOwnProperty(v)) {\n var _ = d[v];\n t.Wu(v, _.getMetadataLabels());\n }\n }\n },\n }),\n (function () {\n t = new h();\n var i = new v().getMetadataLabels(),\n o = _.xt(i);\n (e = new _(n, i, o)),\n (g = null),\n ((S = {}).ns_st_id = r.uuid()),\n (S.ns_st_mp = c.Mn),\n (S.ns_st_mv = c.Mn),\n (w = {}),\n (E = !1),\n (I = {}),\n (m = NaN),\n (y = 0),\n (b = NaN),\n (A = 0),\n (P = !1),\n (C = !1),\n (L = 0),\n (D = 0),\n (T = 0),\n (N = 0),\n (O = 1),\n (k = 0),\n (R = !0),\n (M = 1),\n (U = []),\n (x = {}),\n (W = {}),\n (F = -1),\n (V = 0),\n (B = 0),\n (q = !1),\n (j = !1),\n (G = !1),\n (H = {}),\n (K = null);\n })();\n }\n (g.Fu = function (n, t, e) {\n for (var i = t.ao(), r = t.getLabels(), o = {}, u = 0; e && u < e.length; u++) r.hasOwnProperty(e[u]) && (o[e[u]] = r[e[u]]);\n n.fo().addLabels(o), _.mo(i, n.fo().ao(), e);\n }),\n (g.Vu = !0),\n (n.exports = g);\n },\n function (n, t) {\n var e = e || {};\n (e.Fo = function (n, t) {\n return (t = t || !1), n ? "0" != n : t;\n }),\n (e.Bu = function (n, t) {\n return null == n || isNaN(n) ? t || 0 : parseInt(n);\n }),\n (e.qu = function (n, t) {\n var e = Number(n);\n return null == n || isNaN(e) ? t || 0 : e;\n }),\n (e.toString = function (n) {\n if (void 0 === n) return "undefined";\n if ("string" == typeof n) return n;\n if (n instanceof Array) return n.join(",");\n var t = "";\n for (var e in n) n.hasOwnProperty(e) && (t += e + ":" + n[e] + ";");\n return t || n.toString();\n }),\n (n.exports.Fo = e.Fo),\n (n.exports.Bu = e.Bu),\n (n.exports.qu = e.qu),\n (n.exports.toString = e.toString);\n },\n function (n, t) {\n n.exports = {\n ju: [\n "ns_st_ci",\n "ns_st_pu",\n "ns_st_pr",\n "ns_st_sn",\n "ns_st_en",\n "ns_st_ep",\n "ns_st_st",\n "ns_st_ty",\n "ns_st_ct",\n "ns_st_li",\n "ns_st_ad",\n "ns_st_bn",\n "ns_st_tb",\n "ns_st_an",\n "ns_st_ta",\n "c3",\n "c4",\n "c6",\n "ns_st_tpr",\n "ns_st_tep",\n "ns_st_stc",\n "ns_st_sta",\n "ns_st_amg",\n "ns_st_ami",\n "ns_st_amt",\n "ns_st_dt",\n "ns_st_tm",\n "ns_st_ddt",\n "ns_st_dtm",\n "ns_st_tdt",\n "ns_st_ttm",\n ],\n po: [\n "ns_st_ci",\n "ns_st_pu",\n "ns_st_pr",\n "ns_st_sn",\n "ns_st_en",\n "ns_st_ep",\n "ns_st_st",\n "ns_st_ty",\n "ns_st_ct",\n "ns_st_li",\n "ns_st_ad",\n "ns_st_bn",\n "ns_st_tb",\n "ns_st_ta",\n "c3",\n "c4",\n "c6",\n "ns_st_tpr",\n "ns_st_tep",\n "ns_st_stc",\n "ns_st_sta",\n "ns_st_dt",\n "ns_st_tm",\n "ns_st_ddt",\n "ns_st_dtm",\n "ns_st_tdt",\n "ns_st_ttm",\n ],\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(8),\n o = e(53),\n u = e(32);\n function s() {\n var n,\n t,\n e,\n s,\n f,\n c = this,\n l = new o(),\n d = ["ns_st_ct", "ns_st_li", "ns_st_ty", "ns_st_cl", "ns_st_fee", "ns_st_cs", "ns_st_cu"];\n function v(n, t) {\n r.Yn(f, n, t);\n }\n (n = null),\n (t = {}),\n (s = !1),\n (f = {}),\n v("ns_st_li", "0"),\n v("ns_st_ty", "video"),\n v("ns_st_ad", "1"),\n v("ns_st_tp", "1"),\n i.extend(c, l),\n i.extend(c, {\n setRelatedContentMetadata: function (t) {\n t instanceof u || (t = null), (n = t);\n },\n getRelatedContentMetadata: function () {\n return n;\n },\n setMediaType: function (n) {\n if (null != n) {\n v("ns_st_ct", (s ? "aa" : "va") + (e = n));\n var t = "1";\n e == a.ON_DEMAND_PRE_ROLL || e == a.BRANDED_ON_DEMAND_PRE_ROLL\n ? (t = "pre-roll")\n : e == a.ON_DEMAND_MID_ROLL || e == a.BRANDED_ON_DEMAND_MID_ROLL\n ? (t = "mid-roll")\n : (e != a.ON_DEMAND_POST_ROLL && e != a.BRANDED_ON_DEMAND_POST_ROLL) || (t = "post-roll"),\n v("ns_st_ad", t),\n e == a.LIVE || e == a.BRANDED_DURING_LIVE ? v("ns_st_li", "1") : v("ns_st_li", "0");\n }\n },\n classifyAsAudioStream: function (n) {\n null == n && (n = !0), (s = n), null == e ? delete f["ns_st_ct"] : v("ns_st_ct", (s ? "aa" : "va") + e), v("ns_st_ty", s ? "audio" : "video");\n },\n setVideoDimensions: function (n, t) {\n v("ns_st_cs", (n = n || 0) + "x" + (t = t || 0));\n },\n setLength: function (n) {\n v("ns_st_cl", n);\n },\n setBreakNumber: function (n) {\n v("ns_st_bn", n);\n },\n setTotalBreaks: function (n) {\n v("ns_st_tb", n);\n },\n setNumberInBreak: function (n) {\n v("ns_st_an", n);\n },\n setTotalInBreak: function (n) {\n v("ns_st_ta", n);\n },\n setClipUrl: function (n) {\n v("ns_st_cu", n);\n },\n setServer: function (n) {\n v("ns_st_ams", n);\n },\n setCallToActionUrl: function (n) {\n v("ns_st_amc", n);\n },\n setDeliveryType: function (n) {\n v("ns_st_amd", n);\n },\n setOwner: function (n) {\n v("ns_st_amo", n);\n },\n setStack: function (n, e) {\n t[n] = e;\n },\n getStacks: function () {\n return t;\n },\n getStandardLabels: function () {\n return i.extend({}, l.getStandardLabels(), f);\n },\n getMetadataLabels: function () {\n var t = {};\n if (n) {\n var e = n.getStandardLabels();\n for (var r in e) e.hasOwnProperty(r) && -1 == d.indexOf(r) && (t[r] = e[r]);\n }\n return i.extend(t, c.getStandardLabels(), n ? n.getCustomLabels() : null, c.getCustomLabels());\n },\n });\n }\n var a = {\n ON_DEMAND_PRE_ROLL: "11",\n ON_DEMAND_MID_ROLL: "12",\n ON_DEMAND_POST_ROLL: "13",\n LIVE: "21",\n BRANDED_ON_DEMAND_PRE_ROLL: "31",\n BRANDED_ON_DEMAND_MID_ROLL: "32",\n BRANDED_ON_DEMAND_POST_ROLL: "33",\n BRANDED_AS_CONTENT: "34",\n BRANDED_DURING_LIVE: "35",\n OTHER: "00",\n };\n (s.AdvertisementType = a),\n (s.AdvertisementDeliveryType = { NATIONAL: "national", LOCAL: "local", SYNDICATION: "syndication" }),\n (s.AdvertisementOwner = { DISTRIBUTOR: "distributor", ORIGINATOR: "originator", MULTIPLE: "mp", NONE: "none" }),\n (n.exports = s);\n },\n function (n, t, e) {\n var i = e(0),\n r = e(8),\n o = e(15);\n n.exports = function () {\n var n, t;\n function e(t, e) {\n r.Yn(n, t, e);\n }\n (n = {}),\n (t = {}),\n i.extend(this, {\n setFee: function (n) {\n e("ns_st_fee", n);\n },\n setUniqueId: function (n) {\n e("ns_st_ami", n);\n },\n setTitle: function (n) {\n e("ns_st_amt", n);\n },\n setServerCampaignId: function (n) {\n e("ns_st_amg", n);\n },\n setPlacementId: function (n) {\n e("ns_st_amp", n);\n },\n setSiteId: function (n) {\n e("ns_st_amw", n);\n },\n addCustomLabels: function (n) {\n "object" != typeof n && (n = {}), (t = o.Tt(n));\n },\n getCustomLabels: function () {\n return t;\n },\n getStandardLabels: function () {\n return n;\n },\n getMetadataLabels: function () {\n return i.extend({}, n, t);\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(8),\n o = e(15),\n u = e(120);\n function s() {\n var n, t;\n function e(t, e) {\n r.Yn(n, t, e);\n }\n (n = {}),\n (t = {}),\n i.extend(this, {\n setUniqueId: function (n) {\n e("ns_st_ci", n);\n },\n setPublisherName: function (n) {\n e("ns_st_pu", n);\n },\n setProgramTitle: function (n) {\n e("ns_st_pr", n);\n },\n setEpisodeTitle: function (n) {\n e("ns_st_ep", n);\n },\n setEpisodeSeasonNumber: function (n) {\n e("ns_st_sn", n);\n },\n setEpisodeNumber: function (n) {\n e("ns_st_en", n);\n },\n setGenreName: function (n) {\n e("ns_st_ge", n);\n },\n setGenreId: function (n) {\n e("ns_st_tge", n);\n },\n setDateOfProduction: function (n, t, i) {\n e("ns_st_dt", a(n, t, i));\n },\n setTimeOfProduction: function (n, t) {\n e("ns_st_tm", f(n, t));\n },\n setDateOfDigitalAiring: function (n, t, i) {\n e("ns_st_ddt", a(n, t, i));\n },\n setTimeOfDigitalAiring: function (n, t) {\n e("ns_st_dtm", f(n, t));\n },\n setDateOfTvAiring: function (n, t, i) {\n e("ns_st_tdt", a(n, t, i));\n },\n setTimeOfTvAiring: function (n, t) {\n e("ns_st_ttm", f(n, t));\n },\n setStationTitle: function (n) {\n e("ns_st_st", n);\n },\n setStationCode: function (n) {\n e("ns_st_stc", n);\n },\n setProgramId: function (n) {\n e("ns_st_tpr", n);\n },\n setEpisodeId: function (n) {\n e("ns_st_tep", n);\n },\n setFee: function (n) {\n e("ns_st_fee", n);\n },\n setPlaylistTitle: function (n) {\n e("ns_st_pl", n);\n },\n setNetworkAffiliate: function (n) {\n e("ns_st_sta", n);\n },\n setDeliveryMode: function (n) {\n e("ns_st_cde", n);\n },\n setDeliverySubscriptionType: function (n) {\n e("ns_st_cds", n);\n },\n setDeliveryComposition: function (n) {\n e("ns_st_cdc", n);\n },\n setDeliveryAdvertisementCapability: function (n) {\n e("ns_st_cda", n);\n },\n setDistributionModel: function (n) {\n e("ns_st_cdm", n);\n },\n setMediaFormat: function (n) {\n e("ns_st_cmt", n);\n },\n setDictionaryClassificationC3: function (n) {\n e("c3", n);\n },\n setDictionaryClassificationC4: function (n) {\n e("c4", n);\n },\n setDictionaryClassificationC6: function (n) {\n e("c6", n);\n },\n addCustomLabels: function (n) {\n "object" != typeof n && (n = {}), (t = o.Tt(n));\n },\n getStandardLabels: function () {\n return n;\n },\n getCustomLabels: function () {\n return t;\n },\n getMetadataLabels: function () {\n return i.extend({}, n, t);\n },\n });\n }\n function a(n, t, e) {\n return u.Gu(4, n) + "-" + u.Gu(2, t) + "-" + u.Gu(2, e);\n }\n function f(n, t) {\n return u.Gu(2, n) + ":" + u.Gu(2, t);\n }\n (s.ContentDeliveryMode = { LINEAR: "linear", ON_DEMAND: "ondemand" }),\n (s.ContentDeliverySubscriptionType = { TRADITIONAL_MVPD: "mvpd_auth", VIRTUAL_MVPD: "virtualmvpd", SUBSCRIPTION: "svod", ADVERTISING: "avod", TRANSACTIONAL: "tvod", PREMIUM: "pvod" }),\n (s.ContentDeliveryComposition = { CLEAN: "clean", EMBED: "embedded" }),\n (s.ContentDeliveryAdvertisementCapability = {\n NONE: "none",\n DYNAMIC_LOAD: "dai",\n DYNAMIC_REPLACEMENT: "dar",\n LINEAR_1DAY: "lai-c1",\n LINEAR_2DAY: "lai-c2",\n LINEAR_3DAY: "lai-c3",\n LINEAR_4DAY: "lai-c4",\n LINEAR_5DAY: "lai-c5",\n LINEAR_6DAY: "lai-c6",\n LINEAR_7DAY: "lai-c7",\n }),\n (s.ContentDistributionModel = { TV_AND_ONLINE: "to", EXCLUSIVELY_ONLINE: "eo" }),\n (s.ContentMediaFormat = {\n FULL_CONTENT_GENERIC: "fc",\n FULL_CONTENT_EPISODE: "fc01",\n FULL_CONTENT_MOVIE: "fc02",\n FULL_CONTENT_PODCAST: "fc03",\n PARTIAL_CONTENT_GENERIC: "pc",\n PARTIAL_CONTENT_EPISODE: "pc01",\n PARTIAL_CONTENT_MOVIE: "pc02",\n PARTIAL_CONTENT_PODCAST: "pc03",\n PREVIEW_GENERIC: "pv",\n PREVIEW_EPISODE: "pv01",\n PREVIEW_MOVIE: "pv02",\n EXTRA_GENERIC: "ec",\n EXTRA_EPISODE: "ec01",\n EXTRA_MOVIE: "ec02",\n }),\n (n.exports = s);\n },\n function (n, t, e) {\n var i = e(0),\n r = e(15),\n o = e(51).ju;\n function u(n, t, e) {\n (t = t || {}), (e = e || "");\n var o,\n u,\n s,\n a,\n f,\n c,\n l,\n d,\n v,\n _,\n h,\n p,\n g,\n m,\n y,\n b,\n S,\n w,\n E,\n I,\n P,\n A,\n C,\n L,\n D,\n N,\n T,\n O,\n k,\n R,\n M,\n U,\n x,\n W,\n F,\n V,\n B,\n q,\n j,\n G,\n H,\n K,\n J,\n Y,\n z,\n X,\n Q,\n $,\n Z,\n nn,\n tn,\n en,\n rn,\n on,\n un,\n sn,\n an,\n fn,\n cn,\n ln,\n dn,\n vn,\n _n,\n hn,\n pn,\n gn,\n mn,\n yn,\n bn,\n Sn,\n wn,\n En,\n In,\n Pn,\n An,\n Cn,\n Ln,\n Dn,\n Nn,\n Tn = this;\n function On(n) {\n var t = {},\n e = [];\n for (var i in n)\n if (n.hasOwnProperty(i)) {\n var r = n[i];\n if (i.length >= 2 && "c" == i[0] && i[1].charCodeAt(0) >= "a".charCodeAt(0) && i[1].charCodeAt(0) <= "z".charCodeAt(0) && "p" != i[1] && "s" != i[1]) {\n var o = i[1];\n if (i.length > 3 && "_" == i[2]) ((t[o] = t[o] || {})[i.substring(3, i.length)] = r), e.push(i);\n else if (3 == i.length && i[2] >= "0" && i[2] <= "9") {\n ((t[o] = t[o] || {})["c" + i[2]] = r), e.push(i);\n }\n }\n }\n for (var u = 0; u < e.length; ++u) {\n delete n[e[u]];\n }\n for (var s in t) {\n var a = t[s],\n f = a.c2;\n f && (delete a.c2, Tn.Wu(f, a));\n }\n }\n i.extend(Tn, {\n Wu: function (n, t) {\n (f[n] = f[n] || {}), i.extend(f[n], t);\n },\n Lu: function () {\n f = {};\n },\n getStacks: function () {\n return f;\n },\n Vo: function () {\n return u;\n },\n Hu: function (n) {\n T = n;\n },\n Ku: function () {\n return T;\n },\n Mu: function (n, t) {\n s[n] = t;\n },\n Ju: function (n) {\n return s[n];\n },\n Yu: function (n) {\n return null != s[n];\n },\n addLabels: function (n) {\n On(n), i.extend(a, n);\n },\n getLabels: function () {\n return a;\n },\n setLabel: function (n, t) {\n a[n] = t;\n },\n Cu: function () {\n a = {};\n },\n Yr: function (n) {\n return a[n];\n },\n Jr: function (n) {\n return null != a[n];\n },\n su: function () {\n return parseInt(Tn.Ju("ns_st_cn"));\n },\n Ru: function (n) {\n Tn.Mu("ns_st_cn", n + "");\n },\n ru: function (n) {\n (Ln = n), (Dn = !0);\n },\n iu: function () {\n return Ln;\n },\n eu: function () {\n return Dn;\n },\n zn: function (n, t, e) {\n var u,\n a = n,\n f = parseInt(a.ns_st_po);\n (u = e && Cn < 0 && p - f > 0 ? P + p - f : e && Cn > 0 && f - p > 0 ? P + f - p : P),\n (a.ns_st_ap = u + ""),\n (a.ns_st_dap = u - A + ""),\n (a.ns_st_iap = u - C + ""),\n (a.ns_st_pt = d + (isNaN(v) ? 0 : t - v) + ""),\n (a.ns_st_dpt = d + (isNaN(v) ? 0 : t - v) - _ + ""),\n (a.ns_st_ipt = d + (isNaN(v) ? 0 : t - v) - h + ""),\n (a.ns_st_et = m + (isNaN(y) ? 0 : t - y) + ""),\n (a.ns_st_det = m + (isNaN(y) ? 0 : t - y) - b + ""),\n (a.ns_st_iet = m + (isNaN(y) ? 0 : t - y) - L + ""),\n (a.ns_st_bt = j + ""),\n (a.ns_st_dbt = j + (isNaN(G) ? 0 : t - G) - H + ""),\n (a.ns_st_ibt = j + (isNaN(G) ? 0 : t - G) - z + "");\n var l = O,\n g = k;\n e && ((l = r.Rt(O, Cn < 0 ? f : R, Cn < 0 ? R : f, T)), (g = r.Rt(k, Cn < 0 ? f : R, Cn < 0 ? R : f, T)));\n for (var S, I = 0, X = 0, Q = 0; Q < l.length; Q++) (I += S = Math.abs(l[Q].end - l[Q].start)), S > X && (X = S);\n var nn = 0,\n tn = 0;\n for (Q = 0; Q < g.length; Q++) (nn += S = Math.abs(g[Q].end - g[Q].start)), S > tn && (tn = S);\n (a.ns_st_upc = I + ""),\n (a.ns_st_dupc = I - M + ""),\n (a.ns_st_iupc = I - U + ""),\n (a.ns_st_lpc = X + ""),\n (a.ns_st_dlpc = X - x + ""),\n (a.ns_st_ilpc = X - N + ""),\n (a.ns_st_upa = nn + ""),\n (a.ns_st_dupa = nn - W + ""),\n (a.ns_st_iupa = nn - F + ""),\n (a.ns_st_lpa = tn + ""),\n (a.ns_st_dlpa = tn - V + ""),\n (a.ns_st_ilpa = tn - D + ""),\n (a.ns_st_pc = un + ""),\n (a.ns_st_dpc = un - sn + ""),\n (a.ns_st_skc = an + ""),\n (a.ns_st_dskc = an - fn + ""),\n (a.ns_st_bc = K + ""),\n (a.ns_st_dbc = K - J + ""),\n (a.ns_st_ibc = K - Y + ""),\n (a.ns_st_skt = $ + ""),\n (a.ns_st_dskt = $ - Z + ""),\n (a.ns_st_ska = en + ""),\n (a.ns_st_dska = en - rn + ""),\n o && ((a.ns_st_spc = cn + ""), (a.ns_st_dspc = cn - B + ""), (a.ns_st_apc = ln + ""), (a.ns_st_dapc = ln - q + ""), (a.ns_st_sq = dn + ""), (a.ns_st_asq = vn + "")),\n (a.ns_st_dtpc = Sn - wn + ""),\n (a.ns_st_itpc = Sn - En + ""),\n (a.ns_st_dcpc = pn - gn + ""),\n (a.ns_st_icpc = pn - mn + ""),\n (a.ns_st_rt = Cn + ""),\n (a.ns_st_ldw = w),\n (a.ns_st_ldo = E),\n (a.ns_st_pn = Ln + ""),\n (a.ns_st_lda = c ? "1" : "0"),\n i.extend(a, s);\n },\n Su: function (n) {\n (_ = parseInt(n.ns_st_pt)),\n (A = parseInt(n.ns_st_ap)),\n (b = parseInt(n.ns_st_et)),\n (H = parseInt(n.ns_st_bt)),\n (M = parseInt(n.ns_st_upc)),\n (x = parseInt(n.ns_st_lpc)),\n (W = parseInt(n.ns_st_upa)),\n (V = parseInt(n.ns_st_lpa)),\n (sn = parseInt(n.ns_st_pc)),\n (fn = parseInt(n.ns_st_skc)),\n (J = parseInt(n.ns_st_bc)),\n (Z = parseInt(n.ns_st_skt)),\n (rn = parseInt(n.ns_st_ska)),\n o && ((B = parseInt(n.ns_st_spc)), (q = parseInt(n.ns_st_apc))),\n (wn = Sn),\n (gn = pn),\n Tn.zu(0);\n },\n Xu: function (n) {\n (h = parseInt(n.ns_st_pt)),\n (U = parseInt(n.ns_st_upc)),\n (F = parseInt(n.ns_st_upa)),\n (C = parseInt(n.ns_st_ap)),\n (L = parseInt(n.ns_st_et)),\n (D = parseInt(n.ns_st_lpa)),\n (N = parseInt(n.ns_st_lpc)),\n (z = parseInt(n.ns_st_bt)),\n (Y = parseInt(n.ns_st_bc)),\n (En = Sn),\n (mn = pn);\n },\n Qu: function () {\n return Tn.Ju("ns_st_vt");\n },\n $u: function (n) {\n Tn.Mu("ns_st_vt", n + "");\n },\n Zu: function () {\n return Tn.Ju("ns_st_at");\n },\n ns: function (n) {\n Tn.Mu("ns_st_at", n + "");\n },\n ts: function () {\n return Tn.Ju("ns_st_tt");\n },\n es: function (n) {\n Tn.Mu("ns_st_tt", n + "");\n },\n rs: function () {\n return Tn.Ju("ns_st_cdn");\n },\n os: function (n) {\n Tn.Mu("ns_st_cdn", n + "");\n },\n So: function () {\n un++;\n },\n us: function () {\n an++;\n },\n bo: function () {\n dn++;\n },\n ss: function () {\n return dn;\n },\n jo: function (n) {\n _n = n;\n },\n Go: function (n) {\n hn = n;\n },\n xo: function () {\n return hn;\n },\n Mo: function () {\n return _n;\n },\n Po: function () {\n return j;\n },\n Ao: function (n) {\n j = n;\n },\n Io: function (n) {\n if (!isNaN(G)) {\n var t = Tn.Po();\n (t += n - G), Tn.Ao(t), (G = NaN);\n }\n },\n as: function (n) {\n R = parseInt(n);\n },\n fs: function () {\n return R;\n },\n cs: function (n) {\n isNaN(R) || isNaN(n) || ((O = r.Rt(O, Cn < 0 ? n : R, Cn < 0 ? R : n, T)), (k = r.Rt(k, Cn < 0 ? n : R, Cn < 0 ? R : n, T)), (R = NaN));\n },\n ls: function (n) {\n var t = k;\n null != n && (t = r.Rt(k, Cn < 0 ? _n : R, Cn < 0 ? R : _n, T)),\n In || Pn || (t.length > 1 || 0 == t.length || t[0].start - T > 0 ? (In = !0) : t[0].end - t[0].start >= 3e3 && ((Pn = !0), Sn++)),\n yn || bn || (t.length > 1 || 0 == t.length || t[0].start - T > 0 ? (yn = !0) : t[0].end - t[0].start >= Nn && ((bn = !0), pn++));\n },\n ds: function () {\n return m;\n },\n vs: function (n) {\n m = n;\n },\n _s: function (n) {\n if (!isNaN(y)) {\n var t = Tn.ds();\n (t += n - y), Tn.vs(t), (y = NaN);\n }\n },\n hs: function () {\n return y;\n },\n ps: function (n) {\n y = n;\n },\n wo: function (n) {\n isNaN(v) || ((d += n - v), (v = NaN));\n },\n so: function () {\n return d;\n },\n qo: function (n) {\n var t = p;\n return (t += Math.floor(((n - g) * Cn) / 100));\n },\n Qo: function (n) {\n return p + Math.floor(((n - I) * Cn) / 100);\n },\n zo: function (n, t) {\n return p + E - t + n - I;\n },\n Xo: function (n) {\n return E + Math.floor((n - I) * (1 - Cn / 100));\n },\n Yo: function (n) {\n return E + n - I;\n },\n Ro: function (n) {\n p = n;\n },\n Uo: function (n) {\n g = n;\n },\n gs: function () {\n return g;\n },\n Bo: function () {\n return p;\n },\n co: function () {\n return v;\n },\n Do: function (n) {\n v = n;\n },\n ms: function (n) {\n _ = n;\n },\n Lo: function () {\n return G;\n },\n Co: function (n) {\n G = n;\n },\n No: function () {\n return un;\n },\n To: function (n) {\n un = n;\n },\n ys: function () {\n return an;\n },\n bs: function (n) {\n an = n;\n },\n Ss: function (n) {\n X = n;\n },\n ws: function () {\n return X;\n },\n Es: function (n) {\n tn = n;\n },\n Is: function () {\n return tn;\n },\n Jo: function () {\n return l;\n },\n yu: function (n) {\n l = n;\n },\n Ps: function (n) {\n o = n;\n },\n yo: function () {\n return o;\n },\n As: function (n) {\n Q = n;\n },\n Cs: function () {\n return Q;\n },\n Ls: function (n) {\n if (!isNaN(Q)) {\n var t = Tn.Ds();\n (t += n - Q), Tn.Ns(t), (Q = NaN);\n }\n },\n Ds: function () {\n return $;\n },\n Ns: function (n) {\n $ = n;\n },\n Ts: function (n) {\n on = n;\n },\n Os: function () {\n return on;\n },\n ks: function (n) {\n nn = n;\n },\n Rs: function () {\n return nn;\n },\n Ms: function (n) {\n en = n;\n },\n Us: function () {\n return en;\n },\n xs: function (n) {\n var t,\n e = Tn.Us();\n (e += Math.abs(n - nn)), Tn.Ms(e), nn == n ? (t = 0) : nn > n ? (t = -1) : nn < n && (t = 1), Tn.zu(t), (nn = 0);\n },\n Ws: function () {\n return parseInt(Tn.Ju("ns_st_skd"));\n },\n zu: function (n) {\n Tn.Mu("ns_st_skd", n + "");\n },\n Fs: function () {\n (d = 0), (_ = 0), (h = 0), (j = 0), (H = 0), (z = 0), (K = 0), (J = 0), (Y = 0), (un = 0), (sn = 0), (dn = 0), (L = 0), (m = 0), (b = 0), ($ = 0), (Z = 0), (en = 0), (rn = 0), (an = 0), (fn = 0), (Dn = !1);\n },\n Vs: function () {\n cn++;\n },\n Bs: function () {\n ln++;\n },\n qs: function () {\n (P = 0), (A = 0), (C = 0), (k = []), (W = 0), (F = 0), (V = 0), (D = 0), (In = !1), (Pn = !1), (yn = !1), (bn = !1);\n },\n js: function (n) {\n cn = n;\n },\n mu: function (n) {\n S = n;\n },\n Gs: function () {\n return cn;\n },\n Hs: function () {\n return S;\n },\n Ks: function () {\n return K;\n },\n Js: function () {\n K++;\n },\n Ys: function () {\n return H;\n },\n au: function (n) {\n vn = n;\n },\n _u: function () {\n vn++;\n },\n zs: function () {\n return vn;\n },\n Xs: function () {\n return An;\n },\n bu: function (n) {\n An = n;\n },\n Qs: function () {\n return Cn;\n },\n $s: function (n) {\n Cn = n;\n },\n Zs: function (n) {\n Cn < 0 && p - n > 0 ? (P += p - n) : Cn > 0 && n - p > 0 && (P += n - p);\n },\n setDvrWindowLength: function (n) {\n w = n;\n },\n $o: function () {\n return w;\n },\n Zo: function (n) {\n E = n;\n },\n nu: function (n) {\n I = n;\n },\n na: function () {\n return I;\n },\n Ko: function () {\n return E;\n },\n ta: function (n) {\n c = n;\n },\n ea: function () {\n return c;\n },\n ku: function () {\n An = !1;\n },\n }),\n ((s = {}).ns_st_cl = "0"),\n (s.ns_st_tp = "0"),\n (s.ns_st_cn = "1"),\n (s.ns_st_skd = "0"),\n (s.ns_st_ci = "0"),\n (s.ns_st_cn = "1"),\n (s.c3 = "*null"),\n (s.c4 = "*null"),\n (s.c6 = "*null"),\n (s.ns_st_st = "*null"),\n (s.ns_st_pu = "*null"),\n (s.ns_st_pr = "*null"),\n (s.ns_st_ep = "*null"),\n (s.ns_st_sn = "*null"),\n (s.ns_st_en = "*null"),\n (s.ns_st_ct = "*null"),\n (f = {}),\n On(t),\n (a = t),\n (o = !1),\n (c = !1),\n (l = !1),\n (d = 0),\n (v = NaN),\n (p = 0),\n (_ = 0),\n (m = 0),\n (_n = 0),\n (hn = NaN),\n (y = NaN),\n (S = 0),\n (b = 0),\n (h = 0),\n (w = 0),\n (E = 0),\n (I = NaN),\n (P = 0),\n (A = 0),\n (C = 0),\n (L = 0),\n (D = 0),\n (N = 0),\n (R = NaN),\n (O = []),\n (k = []),\n (M = 0),\n (U = 0),\n (x = 0),\n (W = 0),\n (F = 0),\n (V = 0),\n (B = 0),\n (q = 0),\n (j = 0),\n (G = NaN),\n (H = 0),\n (K = 0),\n (J = 0),\n (Y = 0),\n (z = 0),\n (X = !1),\n (Q = NaN),\n (tn = !1),\n (nn = 0),\n (on = 0),\n ($ = 0),\n (Z = 0),\n (en = 0),\n (rn = 0),\n (un = 0),\n (sn = 0),\n (an = 0),\n (fn = 0),\n (cn = 0),\n (ln = 0),\n (dn = 0),\n (vn = 0),\n (pn = 0),\n (gn = 0),\n (mn = 0),\n (yn = !1),\n (bn = !1),\n (Sn = 0),\n (wn = 0),\n (En = 0),\n (In = !1),\n (Pn = !1),\n (An = !1),\n (Cn = 100),\n (Ln = 1),\n (Dn = !1),\n (u = e),\n (T = n.getConfiguration().ia),\n (Nn = n.getConfiguration().ra);\n }\n (u.xt = function (n) {\n return null == n.ns_st_cn ? r.xt(n, o) : n.ns_st_cn + "";\n }),\n (u.mo = function (n, t, e) {\n for (var i = n.getLabels(), r = {}, o = 0; e && o < e.length; ++o) i.hasOwnProperty(e[o]) && (r[e[o]] = i[e[o]]);\n t.addLabels(r), t.Hu(n.Ku());\n }),\n (u.oa = 500),\n (u.ua = 500),\n (u.sa = 3e3),\n (n.exports = u);\n },\n function (n, t, e) {\n var i = e(57);\n (n.exports = i), (n.exports.analytics = i);\n },\n function (n, t, e) {\n var i,\n r = e(0),\n o = e(33),\n u = e(29),\n s = e(9),\n a = e(13),\n f = e(3),\n c = e(102);\n (i = new (function () {\n r.extend(this, {\n StreamingAnalytics: c,\n PlatformAPIs: f.On.PlatformApis,\n PlatformApi: f.On,\n ConnectivityType: s,\n EventInfo: u,\n configuration: o.configuration.Lr,\n version: a.VERSION,\n start: function () {\n o.start();\n },\n notifyHiddenEvent: function (n) {\n o.$i(n);\n },\n notifyViewEvent: function (n) {\n o.Zi(n);\n },\n notifyDistributedContentViewEvent: function (n, t) {\n o.notifyDistributedContentViewEvent(n, t);\n },\n notifyUxActive: function () {\n o.notifyUxActive();\n },\n notifyUxInactive: function () {\n o.notifyUxInactive();\n },\n notifyEnterForeground: function () {\n o.notifyEnterForeground();\n },\n notifyExitForeground: function () {\n o.notifyExitForeground();\n },\n flushOfflineCache: function () {\n o.flushOfflineCache();\n },\n clearOfflineCache: function () {\n o.clearOfflineCache();\n },\n clearInternalData: function () {\n o.clearInternalData();\n },\n });\n })()),\n (n.exports = i);\n },\n function (n, t) {\n n.exports = {\n oe: function (n) {\n return !(null == n || "" == n || "0" == n);\n },\n };\n },\n function (n, t, e) {\n var i = e(3).kn,\n r = e(24),\n o = e(1);\n function u(n, t, e) {\n var i = n.ns_ts,\n r = "undefined" != typeof encodeURIComponent ? encodeURIComponent : escape,\n o = "",\n u = !1;\n for (var s in n) null == t[s] && "ns_ts" != s && (u && (o += "&"), (u = !0), (o += r(s) + "=" + r(n[s])));\n return e.push(o), \'\' + o + " ";\n }\n var s = {\n Rr: function (n, t, e) {\n var s = (function (n) {\n var t = {};\n return (t.c12 = n.getPublisherConfigurations()[0].getPublisherUniqueDeviceId()), (t.c1 = "19"), (t.ns_ap_pn = i.an()), (t.ns_ap_an = n.tn()), (t.ns_ap_device = i.un()), t;\n })(n),\n a = "";\n for (var f in ((a += \'\\n\\n"), (a += l), (a += " ");\n },\n };\n n.exports = s;\n },\n function (n, t, e) {\n var i = e(0);\n n.exports = function (n) {\n i.extend(this, { PlatformApis: n.PlatformApis, setPlatformAPI: n.setPlatformApi, setPlatformApi: n.setPlatformApi });\n };\n },\n function (n, t) {\n n.exports = { SmartTV: 0, Netcast: 1, Cordova: 2, Trilithium: 3, AppleTV: 4, Chromecast: 5, Xbox: 6, webOS: 7, tvOS: 8, nodejs: 9, html5: 10, JSMAF: 11, Skeleton: 12, WebBrowser: 13, SamsungTizenTV: 14 };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(6),\n o = e(1),\n u = e(4),\n s = e(5).Wn,\n a = e(63),\n f = e(64),\n c = e(65),\n l = e(9),\n d = u.Mn,\n v = u.Un,\n _ = null,\n h = null,\n p = null;\n function g() {\n if (null == _) {\n var n = (function () {\n if ("object" != typeof sf || "object" != typeof sf.core || "function" != typeof sf.core.sefplugin) return null;\n var n = sf.core.sefplugin("NNAVI");\n if ("function" != typeof n.Open || "function" != typeof n.Execute) return null;\n n.Open("Network", "1.001", "Network");\n var t = n.Execute("GetMAC", "0");\n if (!o.S(t)) return t;\n if (((t = n.Execute("GetMAC", "1")), !o.S(t))) return t;\n var e = n.Execute("GetDeviceID");\n return o.S(e) ? null : e;\n })();\n null != n ? ((_ = n), (h = "31"), (p = n)) : ((_ = +new Date() + ~~(1e3 * Math.random())), (h = "72"), (p = null));\n }\n }\n var m = i.extend({}, r, {\n W: "smarttv",\n G: s,\n H: null,\n Storage: a,\n K: !0,\n J: f,\n Y: c,\n X: 6e4,\n nn: function () {\n return g(), p;\n },\n en: function () {\n return ("undefined" != typeof sf && o.A(sf.env) && o.A(sf.env.getAppVersion) && sf.env.getAppVersion()) || d;\n },\n in: function () {\n return g(), _;\n },\n rn: function () {\n return h;\n },\n un: function () {\n return ("undefined" != typeof sf && o.A(sf.core) && o.A(sf.core.getEnvValue) && sf.core.getEnvValue("modelid")) || d;\n },\n sn: function () {\n return "2.0.0";\n },\n fn: function () {\n if ("undefined" != typeof sf && o.A(sf.env) && o.A(sf.env.getProductType) && o.A(sf.env.PRODUCTTYPE_TV) && o.A(sf.env.PRODUCTTYPE_MONITOR) && o.A(sf.env.PRODUCTTYPE_BD)) {\n var n = [];\n return (n[sf.env.PRODUCTTYPE_TV] = "samsung-smarttv-tv"), (n[sf.env.PRODUCTTYPE_MONITOR] = "samsung-smarttv-monitor"), (n[sf.env.PRODUCTTYPE_BD] = "samsung-smarttv-bd"), n[sf.env.getProductType()];\n }\n },\n cn: function () {\n return "undefined" != typeof sf && o.A(sf.env) && o.A(sf.env.getFirmwareVer) && sf.env.getFirmwareVer().version;\n },\n ln: function () {\n if ("undefined" == typeof sf || !o.A(sf.env) || !o.A(sf.env.getScreenSize)) return v;\n var n = sf.env.getScreenSize();\n return n.width + "x" + n.height;\n },\n vn: function () {\n if ("undefined" != typeof sf && o.A(sf.env) && o.A(sf.env.getLanguageCode)) return sf.env.getLanguageCode();\n },\n pn: function () {\n if ("object" != typeof sf || "object" != typeof sf.core || "function" != typeof sf.core.sefplugin) return l.UNKNOWN;\n var n = sf.core.sefplugin("NETWORK");\n if ("function" != typeof n.Open || "function" != typeof n.Execute) return l.UNKNOWN;\n n.Open("Network", "1.001", "Network");\n var t = n.Execute("GetActiveType");\n return 0 === t ? l.ETHERNET : 1 === t ? l.WIFI : l.UNKNOWN;\n },\n });\n n.exports = m;\n },\n function (n, t, e) {\n var i,\n r,\n o,\n u,\n s = e(0);\n n.exports = function (n) {\n (o = "undefined" != typeof FileSystem ? new FileSystem() : null),\n (u = "undefined" != typeof curWidget ? curWidget.id : null),\n "undefined" != typeof sf\n ? (i = r = function (n, t) {\n sf.core.localData(n, t);\n })\n : ((i = function (n, t) {\n $.sf.setData(n, t === undefined ? null : t);\n }),\n (r = function (n) {\n return $.sf.getData(n);\n })),\n null == o || "undefined" == typeof o.isValidCommonPath || o.isValidCommonPath(u) || o.createCommonDir(u),\n s.extend(this, {\n storeProperties: function (n) {\n try {\n i("cs_settings", n);\n } catch (t) {}\n },\n getProperties: function () {\n try {\n return r("cs_settings");\n } catch (n) {}\n },\n storeCache: function (n) {\n try {\n !(function (n, t, e) {\n var i = u + "/" + n;\n o.isValidCommonPath(i) || o.createCommonDir(i);\n var r = o.openCommonFile(i + "/" + t, "w");\n r.writeLine(e), o.closeCommonFile(r);\n })("cs_cache_dir", "cs_cache_dir_single", n);\n } catch (t) {}\n },\n getCache: function () {\n try {\n return (function (n, t) {\n var e = u + "/" + n;\n if (!o.isValidCommonPath(e)) return null;\n var i = o.openCommonFile(e + "/" + t, "r");\n if (i) {\n var r = i.aa();\n return o.closeCommonFile(i), r;\n }\n return null;\n })("cs_cache_dir", "cs_cache_dir_single");\n } catch (n) {}\n },\n });\n };\n },\n function (n, t, e) {\n var i,\n r,\n o = e(0);\n "undefined" != typeof sf\n ? (r = i = function (n, t) {\n sf.core.localData(n, t);\n })\n : ((r = function (n, t) {\n $.sf.setData(n, t === undefined ? null : t);\n }),\n (i = function (n) {\n return $.sf.getData(n);\n }));\n n.exports = function () {\n o.extend(this, {\n get: function (n) {\n return i("cs_" + n);\n },\n set: function (n, t) {\n r("cs_" + n, t);\n },\n has: function (n) {\n return i("cs_" + n) !== undefined;\n },\n remove: function (n) {\n r("cs_" + n, null);\n },\n clear: function () {},\n });\n };\n },\n function (n, t, e) {\n var i,\n r,\n o = e(22),\n u = e(0),\n s = null,\n a = null,\n f = {},\n c = !1;\n function l() {\n (s = "undefined" != typeof FileSystem ? new FileSystem() : null),\n (a = "undefined" != typeof curWidget ? curWidget.id : null),\n "undefined" != typeof sf &&\n (r = i = function (n, t) {\n sf.core.localData(n, t);\n }),\n null == s || "undefined" == typeof s.isValidCommonPath || s.isValidCommonPath(a) || s.createCommonDir(a),\n (c = !0);\n }\n function d(n) {\n return n.replace(/^\\s+|\\s+$/g, "");\n }\n function v(n, t) {\n var e = f[n];\n e ? e.push(t) : (e = f[n] = [t]), r("cs_dir_" + n, e.join("|"));\n }\n function _(n, t) {\n var e = f[n],\n i = o.indexOf(t, e);\n i >= 0 && (e.splice(i, 1), r("cs_dir_" + n, 0 === e.length ? null : e.join("|")));\n }\n n.exports = function () {\n u.extend(this, {\n dir: function (n) {\n if ((c || l(), s.isValidCommonPath(a + "/" + n))) {\n var t = f[n];\n if (!t) {\n if (!(t = i("cs_dir_" + n))) return null;\n t = f[n] = t.split("|");\n }\n for (var e = t.slice(), r = 0, o = e.length; r < o; r++) {\n var u = t[r];\n s.isValidCommonPath(a + "/" + n + "/" + u) || _(n, u);\n }\n return e;\n }\n return null;\n },\n append: function (n, t, e) {\n c || l();\n var i = a + "/" + n;\n s.isValidCommonPath(i) || s.createCommonDir(i), s.isValidCommonPath(i + "/" + t) || v(n, t);\n var r = s.openCommonFile(i + "/" + t, "a");\n r.writeLine(d(e)), s.closeCommonFile(r);\n },\n write: function (n, t, e) {\n c || l();\n var i = a + "/" + n;\n s.isValidCommonPath(i) || s.createCommonDir(i), s.isValidCommonPath(i + "/" + t) || v(n, t);\n var r = s.openCommonFile(i + "/" + t, "w");\n r.writeLine(d(e)), s.closeCommonFile(r);\n },\n deleteFile: function (n, t) {\n c || l();\n var e = a + "/" + n;\n return !!s.isValidCommonPath(e) && (_(n, t), s.deleteCommonFile(e + "/" + t));\n },\n read: function (n, t) {\n c || l();\n var e = a + "/" + n;\n if (!s.isValidCommonPath(e)) return null;\n var i = s.openCommonFile(e + "/" + t, "r");\n if (i) {\n for (var r, o = []; (r = i.readLine()); ) o.push(r);\n return s.closeCommonFile(i), o.join("\\n");\n }\n return _(n, t), "";\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(6),\n o = e(1),\n u = e(4),\n s = e(12),\n a = e(5).Wn,\n f = e(7),\n c = e(10),\n l = e(9),\n d = u.Mn,\n v = u.Un,\n _ = null,\n h = null,\n p = null;\n function g() {\n if (null == _) {\n var n = (function () {\n if ("undefined" != typeof ns_ && o.A(ns_.netcastDevice)) {\n if (o.A(ns_.netcastDevice.net_macAddress) && o.I(ns_.netcastDevice.net_macAddress)) return ns_.netcastDevice.net_macAddress;\n if (o.A(ns_.netcastDevice.serialNumber) && o.I(ns_.netcastDevice.serialNumber)) return ns_.netcastDevice.serialNumber;\n }\n return null;\n })();\n null != n ? ((_ = n), (h = "31"), (p = n)) : ((_ = +new Date() + ~~(1e3 * Math.random())), (h = "72"), (p = null));\n }\n }\n var m = i.extend({}, r, {\n W: "netcast",\n G: function () {\n return "undefined" != typeof Image ? s.apply(this, arguments) : a.apply(this, arguments);\n },\n H: null,\n Storage: f,\n J: c,\n K: !1,\n X: 6e4,\n nn: function () {\n return g(), p;\n },\n in: function () {\n return g(), _;\n },\n rn: function () {\n return h;\n },\n un: function () {\n return ("undefined" != typeof ns_ && o.A(ns_.netcastDevice) && o.A(ns_.netcastDevice.modelName) && ns_.netcastDevice.modelName) || d;\n },\n sn: function () {\n return ("undefined" != typeof ns_ && o.A(ns_.netcastDevice) && o.P(ns_.netcastDevice.version, d)) || d;\n },\n fn: function () {\n return "undefined" != typeof ns_ && o.A(ns_.netcastDevice) ? "lg-ott" + o.P(ns_.netcastDevice.platform, d) : d;\n },\n cn: function () {\n if ("undefined" != typeof ns_ && o.A(ns_.netcastDevice)) {\n if (o.A(ns_.netcastDevice.version)) return ns_.netcastDevice.version;\n if (o.A(ns_.netcastDevice.hwVersion)) return ns_.netcastDevice.hwVersion;\n if (o.A(ns_.netcastDevice.swVersion)) return ns_.netcastDevice.swVersion;\n }\n return d;\n },\n ln: function () {\n if ("undefined" != typeof ns_ && o.A(ns_.netcastDevice) && o.A(ns_.netcastDevice.osdResolution))\n switch (ns_.netcastDevice.osdResolution) {\n case 0:\n return "640x480";\n case 1:\n return "720x576";\n case 2:\n return "1280x720";\n case 3:\n return "1920x1080";\n case 4:\n return "1366x768";\n }\n return v;\n },\n vn: function () {\n return ("undefined" != typeof ns_ && o.A(ns_.netcastDevice) && o.P(ns_.netcastDevice.tvLanguage2, o.P(window.navigator.language))) || d;\n },\n pn: function () {\n if ("undefined" != typeof ns_.netcastDevice) {\n if (0 === ns_.netcastDevice.networkType) return l.ETHERNET;\n if (1 === ns_.netcastDevice.networkType) return l.WIFI;\n }\n return d;\n },\n });\n n.exports = m;\n },\n function (n, t, e) {\n var i,\n r,\n o,\n u = e(0),\n s = e(6),\n a = e(4),\n f = e(12),\n c = e(5).Fn,\n l = e(7),\n d = e(14),\n v = e(10),\n _ = e(9),\n h = a.Mn,\n p = a.Un;\n var g = u.extend({}, s, {\n W: "webos",\n G: f,\n H: c,\n Storage: l,\n J: v,\n Y: d,\n K: !0,\n X: 6e4,\n Z: function (n, t) {\n var e = 3,\n u = function () {\n 0 == --e && n();\n };\n !(function (n, t) {\n webOS.service.request("luna://com.webos.service.tv.systemproperty", {\n method: "getSystemInfo",\n parameters: { keys: ["modelName", "firmwareVersion", "UHD", "sdkVersion"] },\n onSuccess: function (t) {\n t.returnValue && (i = t), n();\n },\n onFailure: function () {\n n();\n },\n });\n })(u),\n (function (n, t) {\n webOS.service.request("luna://com.webos.settingsservice", {\n method: "getSystemSettings",\n parameters: { category: "option" },\n onSuccess: function (t) {\n t.returnValue && (r = t), n();\n },\n onFailure: function () {\n n();\n },\n });\n })(u),\n (function (n, t) {\n webOS.service.request("luna://com.webos.service.connectionmanager", {\n method: "getStatus",\n onSuccess: function (t) {\n t.returnValue && (o = t), n();\n },\n onFailure: function () {\n n();\n },\n });\n })(u);\n },\n nn: function () {\n return "undefined" != typeof webOS && webOS.device && webOS.device.serialNumber && "Unknown" != webOS.device.serialNumber ? webOS.device.serialNumber : null;\n },\n in: function () {\n return +new Date() + ~~(1e3 * Math.random());\n },\n rn: function () {\n return "72";\n },\n un: function () {\n return i && i.modelName ? i.modelName : h;\n },\n sn: function () {\n return i && i.sdkVersion ? i.sdkVersion : h;\n },\n fn: function () {\n return "webOS";\n },\n cn: function () {\n return "undefined" != typeof webOS && webOS.device ? webOS.device.platformVersion : h;\n },\n ln: function () {\n var n = 0;\n "undefined" != typeof webOS && webOS.device ? (n = webOS.device.screenWidth) : "undefined" != typeof window && window.screen && (n = window.screen.availWidth);\n var t = 0;\n return (\n "undefined" != typeof webOS && "undefined" != typeof webOS.device ? (t = webOS.device.screenHeight) : "undefined" != typeof window && window.screen && (t = window.screen.availHeight), n > 0 && t > 0 ? n + "x" + t : p\n );\n },\n vn: function () {\n return (r && r.locales && (r.locales.UI || r.locales.TV)) || h;\n },\n pn: function () {\n if (o && (o.wired || o.wifi)) {\n if ("connected" === o.wired.state && "yes" === o.wired.onInternet) return _.ETHERNET;\n if ("connected" === o.wifi.state && "yes" === o.wifi.onInternet) return _.WIFI;\n }\n return _.UNKNOWN;\n },\n });\n n.exports = g;\n },\n function (n, t, e) {\n var i = e(0),\n r = e(6),\n o = e(1),\n u = e(4),\n s = e(12),\n a = e(5).Wn,\n f = e(5).Fn,\n c = e(7),\n l = e(14),\n d = e(10),\n v = u.Mn,\n _ = u.Un,\n h = null,\n p = null,\n g = null;\n function m() {\n if (null == h) {\n var n = "undefined" != typeof device && o.A(device.uuid) && device.uuid.length > 0 ? device.uuid : null;\n null != n ? ((h = n), (p = "31"), (g = n)) : ((h = +new Date() + ~~(1e3 * Math.random())), (p = "72"), (g = null));\n }\n }\n var y = i.extend({}, r, {\n W: "cordova",\n G: function () {\n return "undefined" != typeof Image ? s.apply(this, arguments) : a.apply(this, arguments);\n },\n H: f,\n Storage: c,\n K: !0,\n J: d,\n Y: l,\n X: 6e4,\n nn: function () {\n return m(), g;\n },\n in: function () {\n return m(), h;\n },\n rn: function () {\n return p;\n },\n un: function () {\n return ("undefined" != typeof device && o.A(device.model)) || v;\n },\n sn: function () {\n return ("undefined" != typeof device && o.A(device.cordova) && device.cordova) || v;\n },\n fn: function () {\n return ("undefined" != typeof device && o.A(device.platform) && "cordova" + device.platform) || "cordova";\n },\n cn: function () {\n return ("undefined" != typeof device && o.A(device.version)) || v;\n },\n ln: function () {\n var n = ("undefined" != typeof window && o.A(window.screen) && o.A(window.screen.availWidth) && window.screen.availWidth) || 0,\n t = ("undefined" != typeof window && o.A(window.screen) && o.A(window.screen.availHeight) && window.screen.availHeight) || 0;\n return n > 0 && t > 0 ? n + "x" + t : _;\n },\n vn: function () {\n return ("undefined" != typeof window && o.A(window.navigator) && o.A(window.navigator.language) && window.navigator.language) || v;\n },\n });\n n.exports = y;\n },\n function (n, t, e) {\n var i = e(0),\n r = e(6),\n o = e(1),\n u = e(4),\n s = e(70),\n a = e(7),\n f = e(10),\n c = u.Mn,\n l = u.Un,\n d = null,\n v = null,\n _ = null;\n function h() {\n if (null == d) {\n var n = o.I(engine.stats.device.id) ? engine.stats.device.id : o.I(engine.stats.network.mac) ? engine.stats.network.mac : null;\n null != n ? ((d = n), (v = "31"), (_ = n)) : ((d = +new Date() + ~~(1e3 * Math.random())), (v = "72"), (_ = null));\n }\n }\n var p = i.extend({}, r, {\n W: "trilithium",\n G: s,\n H: null,\n Storage: a,\n J: f,\n K: !1,\n X: 6e4,\n nn: function () {\n return h(), _;\n },\n tn: function () {\n return o.I(engine.stats.application.name) ? engine.stats.application.name : c;\n },\n en: function () {\n return o.I(engine.stats.application.version) ? engine.stats.application.version : c;\n },\n in: function () {\n return h(), d;\n },\n rn: function () {\n return v;\n },\n un: function () {\n return o.P(engine.stats.device.platform, c);\n },\n fn: function () {\n return "trilithium";\n },\n cn: function () {\n return o.P(engine.stats.device.version, c);\n },\n ln: function () {\n return "undefined" != typeof screen && "undefined" != typeof screen.height && "undefined" != typeof screen.width ? screen.height + "x" + screen.width : l;\n },\n });\n n.exports = p;\n },\n function (n, t) {\n n.exports = function (n, t) {\n "undefined" != typeof engine ? (engine.createHttpClient().createRequest("GET", n, null).start(), t && setTimeout(t, 0)) : "function" == typeof setTimeout ? t && setTimeout(t, 0) : t && t();\n };\n },\n function (n, t, e) {\n var i = e(1),\n r = e(4),\n o = e(36).Vr,\n u = e(36).Br,\n s = e(72),\n a = e(73),\n f = r.Mn,\n c = r.Un,\n l = null,\n d = null,\n v = null;\n function _() {\n null == l &&\n ("undefined" != typeof atv && "undefined" != typeof atv.device && atv.device.idForVendor ? ((l = i.P(atv.device.idForVendor, "")), (d = "62")) : ((l = +new Date() + ~~(1e3 * Math.random())), (d = "72")), (v = null));\n }\n var h = {\n W: "atv",\n G: o,\n H: u,\n Storage: s,\n J: a,\n K: !1,\n X: 6e4,\n nn: function () {\n return _(), v;\n },\n tn: function () {\n return f;\n },\n en: function () {\n return f;\n },\n in: function () {\n return _(), l;\n },\n rn: function () {\n return d;\n },\n un: function () {\n return "Apple TV";\n },\n sn: function () {\n return "undefined" != typeof atv && "undefined" != typeof atv.device && i.P(atv.device.softwareVersion, f);\n },\n an: function () {\n return "js";\n },\n fn: function () {\n return "atv";\n },\n cn: function () {\n return "undefined" != typeof atv && "undefined" != typeof atv.device && i.P(atv.device.softwareVersion, f);\n },\n ln: function () {\n return "undefined" != typeof atv.device && "undefined" != typeof atv.device.screenFrame && "undefined" != typeof atv.device.screenFrame.height && "undefined" != typeof atv.device.screenFrame.width\n ? atv.device.screenFrame.height + "x" + atv.device.screenFrame.width\n : c;\n },\n vn: function () {\n return "undefined" != typeof atv && "undefined" != typeof atv.device && i.P(atv.device.language, "");\n },\n setTimeout: function (n, t) {\n return "undefined" != typeof atv && "undefined" != typeof atv.setTimeout && atv.setTimeout(n, t);\n },\n setInterval: function (n, t) {\n return "undefined" != typeof atv && "undefined" != typeof atv.setInterval && atv.setInterval(n, t);\n },\n clearTimeout: function (n) {\n return "undefined" != typeof atv && "undefined" != typeof atv.clearTimeout && atv.clearTimeout(n);\n },\n clearInterval: function (n) {\n return "undefined" != typeof atv && "undefined" != typeof atv.clearInterval && atv.clearInterval(n);\n },\n };\n n.exports = h;\n },\n function (n, t, e) {\n var i = e(0);\n n.exports = function (n) {\n var t = ("undefined" != typeof atv && "undefined" != typeof atv.localStorage && atv.localStorage) || null;\n i.extend(this, {\n storeProperties: function (n) {\n if (t)\n try {\n "function" == typeof t.setItem ? t.setItem("cs_settings", n) : t && (t.Kn = n);\n } catch (e) {}\n },\n getProperties: function () {\n if (!t) return null;\n try {\n if ("function" == typeof t.getItem) return t.getItem("cs_settings");\n if (t) return t.Kn;\n } catch (n) {}\n },\n storeCache: function (n) {\n if (t)\n try {\n "function" == typeof t.setItem ? t.setItem("cs_cache", n) : t && (t.Jn = n);\n } catch (e) {}\n },\n getCache: function () {\n if (!t) return null;\n try {\n if ("function" == typeof t.getItem) return t.getItem("cs_cache");\n if (t) return t.Jn;\n } catch (n) {}\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0);\n n.exports = function () {\n var n = ("undefined" != typeof atv && "undefined" != typeof atv.localStorage && atv.localStorage) || null;\n i.extend(this, {\n get: function (t) {\n return (n && t && n.getItem("cs_" + t)) || null;\n },\n set: function (t, e) {\n n && t && (n["cs_" + t] = e);\n },\n remove: function (t) {\n n && t && n.removeItem("cs_" + t);\n },\n clear: function () {},\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(6),\n o = e(4),\n u = e(37).qr,\n s = e(37).jr,\n a = e(7),\n f = e(14),\n c = e(10),\n l = e(9),\n d = o.Mn,\n v = o.Un,\n _ = null,\n h = null,\n p = null,\n g = !1,\n m = !1,\n y = !1;\n function b() {\n var n = null;\n if (\n "undefined" != typeof Windows &&\n Windows &&\n Windows.Xbox &&\n Windows.Xbox.ApplicationModel &&\n Windows.Xbox.ApplicationModel.Core &&\n Windows.Xbox.ApplicationModel.Core.CoreApplicationContext &&\n Windows.Xbox.ApplicationModel.Core.CoreApplicationContext.currentUser\n ) {\n var t = Windows.Xbox.ApplicationModel.Core.CoreApplicationContext.currentUser;\n null != t && !t.fa && t.ca && (n = Windows.Xbox.ApplicationModel.Core.CoreApplicationContext.currentUser.xboxUserId);\n }\n p = n;\n }\n var S = i.extend({}, r, {\n W: "xbox",\n G: u,\n H: s,\n Storage: a,\n J: c,\n Y: f,\n K: !0,\n X: 6e4,\n nn: function () {\n return (\n y ||\n ("undefined" != typeof Windows &&\n Windows &&\n Windows.Xbox &&\n Windows.Xbox.ApplicationModel &&\n Windows.Xbox.ApplicationModel.Core &&\n Windows.Xbox.ApplicationModel.Core.CoreApplicationContext &&\n Windows.Xbox.ApplicationModel.Core.CoreApplicationContext.addEventListener("currentuserchanged", function () {\n m = !0;\n }),\n b(),\n (y = !0)),\n m && b(),\n p\n );\n },\n tn: function () {\n var n = d;\n return (\n "undefined" != typeof Windows &&\n Windows &&\n Windows.ApplicationModel &&\n Windows.ApplicationModel.Package &&\n Windows.ApplicationModel.Package.current &&\n Windows.ApplicationModel.Package.current.id &&\n Windows.ApplicationModel.Package.current.id.name &&\n (n = Windows.ApplicationModel.Package.current.id.name),\n n\n );\n },\n en: function () {\n var n = d;\n if (\n "undefined" != typeof Windows &&\n Windows &&\n Windows.ApplicationModel &&\n Windows.ApplicationModel.Package &&\n Windows.ApplicationModel.Package.current &&\n Windows.ApplicationModel.Package.current.id &&\n Windows.ApplicationModel.Package.current.id.version\n ) {\n var t = Windows.ApplicationModel.Package.current.id.version;\n n = t.major + "." + t.minor + "." + t.build + "." + t.revision;\n }\n return n;\n },\n in: function () {\n return (\n g ||\n (function () {\n "undefined" != typeof Windows && Windows && Windows.Xbox && Windows.Xbox.System && Windows.Xbox.System.Console && Windows.Xbox.System.Console.applicationSpecificDeviceId\n ? ((_ = Windows.Xbox.System.Console.applicationSpecificDeviceId), (h = "72"))\n : ((_ = this.un() + +new Date() + ~~(1e3 * Math.random())), (h = "72")),\n (g = !0);\n })(),\n _\n );\n },\n rn: function () {\n return h;\n },\n un: function () {\n return "xbox one";\n },\n sn: function () {\n var n = d;\n return (\n "undefined" != typeof navigator &&\n navigator &&\n navigator.userAgent &&\n navigator.userAgent\n .split(";")\n .filter(function (n) {\n return -1 != n.indexOf("Windows NT");\n })\n .forEach(function (t) {\n n = t.substr(t.indexOf("Windows NT") + 11, t.length - 1);\n }),\n n\n );\n },\n an: function () {\n return "xbox";\n },\n fn: function () {\n return "winjs";\n },\n cn: function () {\n var n = d;\n return (\n "undefined" != typeof Windows &&\n Windows &&\n Windows.ApplicationModel &&\n Windows.ApplicationModel.Package &&\n Windows.ApplicationModel.Package.current &&\n Windows.ApplicationModel.Package.current.dependencies &&\n Windows.ApplicationModel.Package.current.dependencies\n .filter(function (n) {\n return n && n.id && n.id.name && -1 != n.id.name.indexOf("WinJS") && n.id.version;\n })\n .forEach(function (t) {\n n = t.id.version.major + "." + t.id.version.minor + "." + t.id.version.build + "." + t.id.version.revision;\n }),\n n\n );\n },\n ln: function () {\n var n = v;\n if (\n "undefined" != typeof Windows &&\n Windows &&\n Windows.Xbox &&\n Windows.Xbox.Graphics &&\n Windows.Xbox.Graphics.Display &&\n Windows.Xbox.Graphics.Display.DisplayConfiguration &&\n Windows.Xbox.Graphics.Display.DisplayConfiguration.getForCurrentView &&\n Windows.Xbox.Graphics.Display.DisplayConfiguration.getForCurrentView() &&\n Windows.Xbox.Graphics.Display.DisplayConfiguration.getForCurrentView().currentDisplayMode &&\n Windows.Xbox.Graphics.Display.DisplayConfiguration.getForCurrentView().currentDisplayMode.rawWidth &&\n Windows.Xbox.Graphics.Display.DisplayConfiguration.getForCurrentView().currentDisplayMode.rawHeight\n ) {\n var t = Windows.Xbox.Graphics.Display.DisplayConfiguration.getForCurrentView().currentDisplayMode;\n n = t.rawWidth + "x" + t.rawHeight;\n }\n return n;\n },\n dn: function () {\n var n = v;\n return "undefined" != typeof window && window.innerWidth && window.innerHeight && (n = window.innerWidth + "x" + window.innerHeight), n;\n },\n vn: function () {\n var n = d;\n return (\n "undefined" != typeof Windows &&\n Windows &&\n Windows.System &&\n Windows.System.UserProfile &&\n Windows.System.UserProfile.GlobalizationPreferences &&\n Windows.System.UserProfile.GlobalizationPreferences.languages &&\n (n = Windows.System.UserProfile.GlobalizationPreferences.languages.getAt(0)),\n n\n );\n },\n _n: function () {\n var n = d;\n return (\n "undefined" != typeof Windows &&\n Windows &&\n Windows.ApplicationModel &&\n Windows.ApplicationModel.Package &&\n Windows.ApplicationModel.Package.current &&\n Windows.ApplicationModel.Package.current.id &&\n Windows.ApplicationModel.Package.current.id.name &&\n (n = Windows.ApplicationModel.Package.current.id.name),\n n\n );\n },\n setPlatformAPI: function () {},\n hn: function () {\n var n = "unknown";\n if (\n "undefined" != typeof Windows &&\n Windows &&\n Windows.ApplicationModel &&\n Windows.ApplicationModel.Package &&\n Windows.ApplicationModel.Package.current &&\n Windows.ApplicationModel.Package.current.id &&\n Windows.ApplicationModel.Package.current.id.architecture\n )\n switch (Windows.ApplicationModel.Package.current.id.architecture) {\n case 5:\n n = "arm";\n break;\n case 11:\n n = "neutral";\n break;\n case 9:\n n = "x64";\n break;\n case 0:\n n = "x86";\n }\n return n;\n },\n pn: function () {\n var n = l.UNKNOWN;\n if (\n "undefined" != typeof Windows &&\n Windows &&\n Windows.Networking &&\n Windows.Networking.Connectivity &&\n Windows.Networking.Connectivity.NetworkInformation &&\n Windows.Networking.Connectivity.NetworkInformation.getInternetConnectionProfile &&\n Windows.Networking.Connectivity.NetworkInformation.getInternetConnectionProfile() &&\n Windows.Networking.Connectivity.NetworkInformation.getInternetConnectionProfile().networkAdapter &&\n Windows.Networking.Connectivity.NetworkInformation.getInternetConnectionProfile().networkAdapter.ianaInterfaceType\n )\n switch (Windows.Networking.Connectivity.NetworkInformation.getInternetConnectionProfile().networkAdapter.ianaInterfaceType) {\n case 6:\n n = l.ETHERNET;\n break;\n case 71:\n n = l.WIFI;\n }\n return n;\n },\n });\n n.exports = S;\n },\n function (n, t, e) {\n var i = e(0),\n r = e(6),\n o = e(1),\n u = e(17),\n s = e(4),\n a = e(12),\n f = e(5).Fn,\n c = e(7),\n l = e(14),\n d = e(10),\n v = e(38),\n _ = s.Mn,\n h = s.Un,\n p = i.extend({}, r, {\n W: "chromecast",\n G: a,\n H: f,\n Storage: c,\n J: d,\n Y: l,\n K: !0,\n X: 6e4,\n tn: function () {\n return "undefined" == typeof ns_.crm ? _ : ns_.crm.getApplicationData().name;\n },\n in: function () {\n return +new Date() + ~~(1e3 * Math.random());\n },\n rn: function () {\n return "72";\n },\n un: function () {\n return "chromecast";\n },\n sn: function () {\n return cast.receiver.VERSION + "-" + o.P(u.Kt() + " " + u.Jt(), _);\n },\n fn: function () {\n return "html";\n },\n cn: function () {\n return "5";\n },\n ln: function () {\n var n = "undefined" != typeof window && o.A(window.screen) && o.A(window.screen.availWidth) ? window.screen.availWidth : 0,\n t = "undefined" != typeof window && o.A(window.screen) && o.A(window.screen.availHeight) ? window.screen.availHeight : 0;\n return n > 0 && t > 0 ? n + "x" + t : h;\n },\n vn: function () {\n return ("undefined" != typeof window && o.A(window.navigator) && o.P(window.navigator.language, "")) || _;\n },\n Pn: function (n) {\n v.Gr(n);\n },\n An: function (n) {\n v.Hr(n);\n },\n });\n n.exports = p;\n },\n function (n, t, e) {\n var i = e(0),\n r = e(6),\n o = e(1),\n u = e(4),\n s = e(5).Wn,\n a = e(5).Fn,\n f = e(7),\n c = e(14),\n l = e(10),\n d = u.Un,\n v = null,\n _ = null,\n h = null;\n function p() {\n null == v && (o.S(Device.vendorIdentifier) ? ((v = +new Date() + ~~(1e3 * Math.random())), (_ = "72")) : ((v = Device.vendorIdentifier), (_ = "62")), (h = v));\n }\n var g = i.extend({}, r, {\n W: "tvos",\n G: s,\n H: a,\n Storage: f,\n K: !0,\n J: l,\n Y: c,\n X: 6e4,\n nn: function () {\n return p(), h;\n },\n tn: function () {\n return Device.appIdentifier;\n },\n en: function () {\n return Device.appVersion;\n },\n in: function () {\n return p(), v;\n },\n rn: function () {\n return _;\n },\n un: function () {\n return Device.productType;\n },\n sn: function () {\n return Device.systemVersion;\n },\n fn: function () {\n return "tvos";\n },\n cn: function () {\n return Device.systemVersion;\n },\n ln: function () {\n return d;\n },\n vn: function () {\n return Settings.language;\n },\n _n: function () {\n return Device.appIdentifier;\n },\n });\n n.exports = g;\n },\n function (n, t, e) {\n var i = e(0),\n r = e(6),\n o = e(1),\n u = e(4),\n s = e(5).Wn,\n a = e(5).Fn,\n f = e(7),\n c = e(10),\n l = e(14),\n d = e(9),\n v = u.Mn,\n _ = u.Un,\n h = null,\n p = null,\n g = null;\n function m() {\n if (null == h)\n if ("undefined" != typeof jsmaf && o.A(jsmaf.hardwareId)) {\n var n = jsmaf.hardwareId;\n (h = n), (p = "31"), (g = n);\n } else (h = +new Date() + ~~(1e3 * Math.random())), (p = "72"), (g = null);\n }\n var y = i.extend({}, r, {\n W: "jsmaf",\n G: s,\n H: a,\n Storage: f,\n K: !0,\n J: c,\n Y: l,\n X: 6e4,\n nn: function () {\n return m(), g;\n },\n in: function () {\n return m(), h;\n },\n rn: function () {\n return m(), p;\n },\n un: function () {\n return "undefined" != typeof jsmaf && o.A(jsmaf.platform) ? jsmaf.platform : v;\n },\n fn: function () {\n return "jsmaf";\n },\n cn: function () {\n return "undefined" != typeof jsmaf && o.A(jsmaf.version) ? jsmaf.version : v;\n },\n ln: function () {\n return "undefined" != typeof jsmaf && o.A(jsmaf.screenWidth) && o.A(jsmaf.screenHeight) ? jsmaf.screenWidth + "x" + jsmaf.screenHeight : _;\n },\n vn: function () {\n return "undefined" != typeof jsmaf && o.A(jsmaf.locale) ? jsmaf.locale : v;\n },\n setTimeout: function (n, t) {\n return jsmaf.setTimeout(n, t);\n },\n setInterval: function (n, t) {\n return jsmaf.setInterval(n, t);\n },\n clearTimeout: function (n) {\n return jsmaf.clearTimeout(n);\n },\n clearInterval: function (n) {\n return jsmaf.clearInterval(n);\n },\n hn: function () {\n if ("undefined" == typeof jsmaf || !o.A(jsmaf.platform)) var n = v;\n return "ps3" == jsmaf.platform ? (n = "cell") : "ps4" == jsmaf.platform ? (n = "ps4") : "vita" == jsmaf.platform && (n = "vita"), n;\n },\n pn: function () {\n return "undefined" != typeof jsmaf && "connected" == jsmaf.networkStatus && o.A(jsmaf.connectionType)\n ? "wired" == jsmaf.connectionType\n ? d.ETHERNET\n : "wireless" == jsmaf.connectionType\n ? d.WIFI\n : "phone" == jsmaf.connectionType\n ? d.WWAN\n : d.UNKNOWN\n : d.UNKNOWN;\n },\n });\n n.exports = y;\n },\n function (n, t, e) {\n var i = e(0),\n r = e(6),\n o = e(1),\n u = e(4),\n s = u.Mn,\n a = null,\n f = null,\n c = null;\n function l() {\n null == a && ((a = +new Date() + ~~(1e3 * Math.random())), (f = "72"), (c = null));\n }\n function d(n, t) {\n var i = this,\n r = 0;\n i.send = function (o) {\n var u = o.match(/^https/) ? e(79) : e(80),\n s = (function (n) {\n var t = e(23);\n return {\n headers: {\n "User-Agent":\n (n.tn() || "unknown") +\n "/" +\n (n.en() || "unknown") +\n " (" +\n (t.platform() || "unknown") +\n "; " +\n (t.arch() || "unknown") +\n "; " +\n (t.type() || "unknown") +\n "/" +\n (t.release || "unknown") +\n ") node.js/" +\n process.version,\n },\n };\n })(t);\n u.get(o, s, function (t) {\n var e = t.statusCode;\n if ((302 == e || 301 == e) && r < 20 && t.headers && t.headers.location) return r++, void i.send(t.headers.location);\n n(e);\n }).on("error", function () {\n n();\n });\n };\n }\n var v = i.extend({}, r, {\n W: "nodejs",\n G: function (n, t, e) {\n new d(t, e).send(n);\n },\n H: null,\n Storage: null,\n K: !1,\n nn: function () {\n return l(), c;\n },\n in: function () {\n return l(), a;\n },\n rn: function () {\n return f;\n },\n sn: function () {\n var n = e(23);\n return [n.type(), n.platform(), n.release()].join(";");\n },\n hn: function () {\n return e(23).arch() || s;\n },\n fn: function () {\n return "nodejs";\n },\n cn: function () {\n return "undefined" == typeof process || o.S(process.version) ? s : process.version;\n },\n });\n n.exports = v;\n },\n function (n, t) {\n n.exports = require("https");\n },\n function (n, t) {\n n.exports = require("http");\n },\n function (n, t, e) {\n var i = e(0),\n r = e(39),\n o = e(13),\n u = i.extend({}, r, {\n W: "webbrowser",\n Storage: null,\n J: null,\n Y: null,\n K: !1,\n F: o.Dt,\n B: o.Vn,\n V: o.Nt,\n j: o.Bn,\n Nn: !0,\n Tn: !0,\n fn: function () {\n return "webbrowser";\n },\n mn: function (n) {\n if ("undefined" != typeof document) {\n var t = document;\n (n.c7 = t.URL), (n.c8 = t.title), (n.c9 = t.referrer), (n.ns_c = t.characterSet || t.defaultCharset || "");\n }\n },\n Cn: !0,\n });\n n.exports = u;\n },\n function (n, t, e) {\n var i = e(0),\n r = e(6),\n o = e(1),\n u = e(4),\n s = e(9),\n a = e(12),\n f = e(5).Wn,\n c = e(5).Fn,\n l = e(7),\n d = u.Mn,\n v = u.Un,\n _ = null;\n var h = i.extend({}, r, {\n W: "samsung-tizen-tv",\n G: function () {\n return "undefined" != typeof Image ? a.apply(this, arguments) : f.apply(this, arguments);\n },\n H: c,\n Storage: l,\n K: !0,\n X: 6e4,\n tn: function () {\n try {\n return tizen["package"].getPackageInfo().name;\n } catch (n) {\n return d;\n }\n },\n en: function () {\n try {\n return tizen["package"].getPackageInfo().version;\n } catch (n) {\n return d;\n }\n },\n nn: function () {\n try {\n if (!(webapis && webapis.adinfo && webapis.adinfo.isLATEnabled())) return null;\n var n = webapis.adinfo.getTIFA();\n if (n) return n;\n } catch (t) {\n return d;\n }\n },\n in: function () {\n return (\n (function () {\n try {\n webapis && webapis.appcommon && webapis.appcommon.getUuid() && (_ = webapis.appcommon.getUuid());\n } catch (n) {\n _ = +new Date() + ~~(1e3 * Math.random());\n }\n })(),\n _\n );\n },\n rn: function () {\n return "72";\n },\n sn: function () {\n try {\n return tizen.systeminfo.getCapability("http://tizen.org/feature/platform.version");\n } catch (n) {\n return d;\n }\n },\n hn: function () {\n try {\n return tizen.systeminfo.getCapability("http://tizen.org/feature/platform.core.cpu.arch");\n } catch (n) {\n return d;\n }\n },\n fn: function () {\n return "samsung-tizen-tv";\n },\n cn: function () {\n try {\n return tizen["package"].getPackageInfo().version;\n } catch (n) {\n return d;\n }\n },\n ln: function () {\n try {\n return tizen.systeminfo.getCapability("http://tizen.org/feature/screen.width") + "x" + tizen.systeminfo.getCapability("http://tizen.org/feature/screen.height");\n } catch (n) {\n return v;\n }\n },\n un: function () {\n return "samsung-tizen-tv";\n },\n _n: function () {\n try {\n return tizen["package"].getPackageInfo().id;\n } catch (n) {\n return d;\n }\n },\n pn: function () {\n return navigator && navigator.connection && navigator.connection.type ? navigator.connection.type : s.UNKNOWN;\n },\n dn: function () {\n var n = "undefined" != typeof window && o.A(window.innerWidth) ? window.innerWidth : 0,\n t = "undefined" != typeof window && o.A(window.innerHeight) ? window.innerHeight : 0;\n return n > 0 && t > 0 ? n + "x" + t : v;\n },\n });\n n.exports = h;\n },\n function (n, t, e) {\n var i = e(0),\n r = e(3).kn;\n n.exports = function (n, t, e, o) {\n function u(n) {\n 200 == n || (o.isHttpRedirectCachingEnabled() && (302 == n || 301 == n)) ? e.onSuccess() : e.onFailure();\n }\n i.extend(this, {\n Mr: function () {\n r.H ? r.H(n, t, u) : u();\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0);\n n.exports = function () {\n i.extend(this, {\n storeProperties: function () {},\n getProperties: function () {\n return null;\n },\n storeCache: function () {},\n getCache: function () {\n return null;\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(41),\n o = e(44),\n u = e(21),\n s = e(25),\n a = e(18),\n f = e(27);\n n.exports = function (n) {\n i.extend(this, {\n setLiveTransmissionMode: n.setLiveTransmissionMode,\n setOfflineCacheMode: n.setOfflineCacheMode,\n enableImplementationValidationMode: n.enableImplementationValidationMode,\n getPartnerConfigurations: n.getPartnerConfigurations,\n getPublisherConfigurations: n.getPublisherConfigurations,\n setLabelOrder: n.setLabelOrder,\n getLabelOrder: n.getLabelOrder,\n setApplicationName: n.setApplicationName,\n setApplicationVersion: n.setApplicationVersion,\n addStartLabels: n.addStartLabels,\n setStartLabel: n.setStartLabel,\n removeStartLabel: n.removeStartLabel,\n removeAllStartLabels: n.removeAllStartLabels,\n isEnabled: n.isEnabled,\n addPersistentLabels: n.addPersistentLabels,\n setPersistentLabel: n.setPersistentLabel,\n removePersistentLabel: n.removePersistentLabel,\n removeAllPersistentLabels: n.removeAllPersistentLabels,\n getPartnerConfiguration: n.getPartnerConfiguration,\n getPublisherConfiguration: n.getPublisherConfiguration,\n disable: n.disable,\n disableTcfIntegration: n.disableTcfIntegration,\n enableFirstPartyCookie: n.enableFirstPartyCookie,\n addListener: n.addListener,\n removeListener: n.removeListener,\n addClient: n.addClient,\n setDebugEnabled: n.setDebugEnabled,\n setSystemClockJumpDetectionEnabled: n.setSystemClockJumpDetectionEnabled,\n setSystemClockJumpDetectionInterval: n.setSystemClockJumpDetectionInterval,\n setSystemClockJumpDetectionAlternativeContextInterval: n.setSystemClockJumpDetectionAlternativeContextInterval,\n setSystemClockJumpDetectionPrecision: n.setSystemClockJumpDetectionPrecision,\n setLiveEndpointUrl: n.setLiveEndpointUrl,\n setOfflineFlushEndpointUrl: n.setOfflineFlushEndpointUrl,\n setCacheMaxMeasurements: n.setCacheMaxMeasurements,\n setCacheMaxFlushesInARow: n.setCacheMaxFlushesInARow,\n setCacheMinutesToRetry: n.setCacheMinutesToRetry,\n setCacheMeasurementExpiry: n.setCacheMeasurementExpiry,\n setUsagePropertiesAutoUpdateMode: n.setUsagePropertiesAutoUpdateMode,\n setUsagePropertiesAutoUpdateInterval: n.setUsagePropertiesAutoUpdateInterval,\n setStorageWriteInterval: n.setStorageWriteInterval,\n addIncludedPublisher: n.addIncludedPublisher,\n addCrossPublisherUniqueDeviceIdChangeListener: n.addCrossPublisherUniqueDeviceIdChangeListener,\n removeCrossPublisherUniqueDeviceIdChangeListener: n.removeCrossPublisherUniqueDeviceIdChangeListener,\n enableChildDirectedApplicationMode: n.enableChildDirectedApplicationMode,\n PartnerConfiguration: r,\n PublisherConfiguration: o,\n LiveTransmissionMode: u,\n CacheMode: s,\n UsagePropertiesAutoUpdateMode: f,\n ConfigurationType: a,\n });\n };\n },\n function (n, t, e) {\n var i = e(4),\n r = {};\n (r.encrypt = (function () {\n var n = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",\n t = function (t, e) {\n var i = n.indexOf(t.charAt(e));\n if (-1 === i) throw new Error();\n return i;\n },\n e = function (n) {\n var e,\n i,\n r,\n o = (n = "" + n).length;\n if (0 === o) return n;\n if (o % 4 != 0) throw new Error();\n (e = 0), "=" === n.charAt(o - 1) && ((e = 1), "=" === n.charAt(o - 2) && (e = 2), (o -= 4));\n var u = [];\n for (i = 0; i < o; i += 4) (r = (t(n, i) << 18) | (t(n, i + 1) << 12) | (t(n, i + 2) << 6) | t(n, i + 3)), u.push(String.fromCharCode(r >> 16, (r >> 8) & 255, 255 & r));\n switch (e) {\n case 1:\n (r = (t(n, i) << 18) | (t(n, i + 1) << 12) | (t(n, i + 2) << 6)), u.push(String.fromCharCode(r >> 16, (r >> 8) & 255));\n break;\n case 2:\n (r = (t(n, i) << 18) | (t(n, i + 1) << 12)), u.push(String.fromCharCode(r >> 16));\n }\n return u.join("");\n };\n function r(n, t, e) {\n null != n && ("number" == typeof n ? this.la(n, t, e) : null == t && "string" != typeof n ? this.da(n, 256) : this.da(n, t));\n }\n function o() {\n return new r(null);\n }\n (r.prototype.va = function (n, t, e, i, r, o) {\n for (var u = 16383 & t, s = t >> 14; --o >= 0; ) {\n var a = 16383 & this[n],\n f = this[n++] >> 14,\n c = s * a + f * u;\n (r = ((a = u * a + ((16383 & c) << 14) + e[i] + r) >> 28) + (c >> 14) + s * f), (e[i++] = 268435455 & a);\n }\n return r;\n }),\n (r.prototype._a = 28),\n (r.prototype.ha = 268435455),\n (r.prototype.pa = 1 << 28);\n (r.prototype.ga = Math.pow(2, 52)), (r.prototype.ma = 24), (r.prototype.ya = 4);\n var u,\n s,\n a = [];\n for (u = "0".charCodeAt(0), s = 0; s <= 9; ++s) a[u++] = s;\n for (u = "a".charCodeAt(0), s = 10; s < 36; ++s) a[u++] = s;\n for (u = "A".charCodeAt(0), s = 10; s < 36; ++s) a[u++] = s;\n function f(n) {\n return "0123456789abcdefghijklmnopqrstuvwxyz".charAt(n);\n }\n function c(n, t) {\n var e = a[n.charCodeAt(t)];\n return null == e ? -1 : e;\n }\n function l(n) {\n var t = o();\n return t.ba(n), t;\n }\n function d(n) {\n var t,\n e = 1;\n return (\n 0 != (t = n >>> 16) && ((n = t), (e += 16)), 0 != (t = n >> 8) && ((n = t), (e += 8)), 0 != (t = n >> 4) && ((n = t), (e += 4)), 0 != (t = n >> 2) && ((n = t), (e += 2)), 0 != (t = n >> 1) && ((n = t), (e += 1)), e\n );\n }\n function v(n) {\n this.o = n;\n }\n function _(n) {\n (this.o = n), (this.Sa = n.wa()), (this.Ea = 32767 & this.Sa), (this.Ia = this.Sa >> 15), (this.Pa = (1 << (n._a - 15)) - 1), (this.Aa = 2 * n._);\n }\n function h(n, t) {\n return n & t;\n }\n function p(n, t) {\n return n | t;\n }\n function g(n, t) {\n return n ^ t;\n }\n function m(n, t) {\n return n & ~t;\n }\n function y(n) {\n if (0 == n) return -1;\n var t = 0;\n return 0 == (65535 & n) && ((n >>= 16), (t += 16)), 0 == (255 & n) && ((n >>= 8), (t += 8)), 0 == (15 & n) && ((n >>= 4), (t += 4)), 0 == (3 & n) && ((n >>= 2), (t += 2)), 0 == (1 & n) && ++t, t;\n }\n function b(n) {\n for (var t = 0; 0 != n; ) (n &= n - 1), ++t;\n return t;\n }\n function S() {}\n function w(n) {\n return n;\n }\n function E(n) {\n (this.r2 = o()), (this.Ca = o()), r.ONE.La(2 * n._, this.r2), (this.Da = this.r2.Na(n)), (this.o = n);\n }\n (v.prototype.Ta = function (n) {\n return n.s < 0 || n.Oa(this.o) >= 0 ? n.ka(this.o) : n;\n }),\n (v.prototype.Ra = function (n) {\n return n;\n }),\n (v.prototype.reduce = function (n) {\n n.Ma(this.o, null, n);\n }),\n (v.prototype.Ua = function (n, t, e) {\n n.xa(t, e), this.reduce(e);\n }),\n (v.prototype.Wa = function (n, t) {\n n.Fa(t), this.reduce(t);\n }),\n (_.prototype.Ta = function (n) {\n var t = o();\n return n.abs().La(this.o._, t), t.Ma(this.o, null, t), n.s < 0 && t.Oa(r.ZERO) > 0 && this.o.Va(t, t), t;\n }),\n (_.prototype.Ra = function (n) {\n var t = o();\n return n.Ba(t), this.reduce(t), t;\n }),\n (_.prototype.reduce = function (n) {\n for (; n._ <= this.Aa; ) n[n._++] = 0;\n for (var t = 0; t < this.o._; ++t) {\n var e = 32767 & n[t],\n i = (e * this.Ea + (((e * this.Ia + (n[t] >> 15) * this.Ea) & this.Pa) << 15)) & n.ha;\n for (n[(e = t + this.o._)] += this.o.va(0, i, n, t, 0, this.o._); n[e] >= n.pa; ) (n[e] -= n.pa), n[++e]++;\n }\n n.qa(), n.ja(this.o._, n), n.Oa(this.o) >= 0 && n.Va(this.o, n);\n }),\n (_.prototype.Ua = function (n, t, e) {\n n.xa(t, e), this.reduce(e);\n }),\n (_.prototype.Wa = function (n, t) {\n n.Fa(t), this.reduce(t);\n }),\n (r.prototype.Ba = function (n) {\n for (var t = this._ - 1; t >= 0; --t) n[t] = this[t];\n (n._ = this._), (n.s = this.s);\n }),\n (r.prototype.ba = function (n) {\n (this._ = 1), (this.s = n < 0 ? -1 : 0), n > 0 ? (this[0] = n) : n < -1 ? (this[0] = n + DV) : (this._ = 0);\n }),\n (r.prototype.da = function (n, t) {\n var e;\n if (16 == t) e = 4;\n else if (8 == t) e = 3;\n else if (256 == t) e = 8;\n else if (2 == t) e = 1;\n else if (32 == t) e = 5;\n else {\n if (4 != t) return void this.Ga(n, t);\n e = 2;\n }\n (this._ = 0), (this.s = 0);\n for (var i = n.length, o = !1, u = 0; --i >= 0; ) {\n var s = 8 == e ? 255 & n[i] : c(n, i);\n s < 0\n ? "-" == n.charAt(i) && (o = !0)\n : ((o = !1),\n 0 == u ? (this[this._++] = s) : u + e > this._a ? ((this[this._ - 1] |= (s & ((1 << (this._a - u)) - 1)) << u), (this[this._++] = s >> (this._a - u))) : (this[this._ - 1] |= s << u),\n (u += e) >= this._a && (u -= this._a));\n }\n 8 == e && 0 != (128 & n[0]) && ((this.s = -1), u > 0 && (this[this._ - 1] |= ((1 << (this._a - u)) - 1) << u)), this.qa(), o && r.ZERO.Va(this, this);\n }),\n (r.prototype.qa = function () {\n for (var n = this.s & this.ha; this._ > 0 && this[this._ - 1] == n; ) --this._;\n }),\n (r.prototype.La = function (n, t) {\n var e;\n for (e = this._ - 1; e >= 0; --e) t[e + n] = this[e];\n for (e = n - 1; e >= 0; --e) t[e] = 0;\n (t._ = this._ + n), (t.s = this.s);\n }),\n (r.prototype.ja = function (n, t) {\n for (var e = n; e < this._; ++e) t[e - n] = this[e];\n (t._ = Math.max(this._ - n, 0)), (t.s = this.s);\n }),\n (r.prototype.Ha = function (n, t) {\n var e,\n i = n % this._a,\n r = this._a - i,\n o = (1 << r) - 1,\n u = Math.floor(n / this._a),\n s = (this.s << i) & this.ha;\n for (e = this._ - 1; e >= 0; --e) (t[e + u + 1] = (this[e] >> r) | s), (s = (this[e] & o) << i);\n for (e = u - 1; e >= 0; --e) t[e] = 0;\n (t[u] = s), (t._ = this._ + u + 1), (t.s = this.s), t.qa();\n }),\n (r.prototype.Ka = function (n, t) {\n t.s = this.s;\n var e = Math.floor(n / this._a);\n if (e >= this._) t._ = 0;\n else {\n var i = n % this._a,\n r = this._a - i,\n o = (1 << i) - 1;\n t[0] = this[e] >> i;\n for (var u = e + 1; u < this._; ++u) (t[u - e - 1] |= (this[u] & o) << r), (t[u - e] = this[u] >> i);\n i > 0 && (t[this._ - e - 1] |= (this.s & o) << r), (t._ = this._ - e), t.qa();\n }\n }),\n (r.prototype.Va = function (n, t) {\n for (var e = 0, i = 0, r = Math.min(n._, this._); e < r; ) (i += this[e] - n[e]), (t[e++] = i & this.ha), (i >>= this._a);\n if (n._ < this._) {\n for (i -= n.s; e < this._; ) (i += this[e]), (t[e++] = i & this.ha), (i >>= this._a);\n i += this.s;\n } else {\n for (i += this.s; e < n._; ) (i -= n[e]), (t[e++] = i & this.ha), (i >>= this._a);\n i -= n.s;\n }\n (t.s = i < 0 ? -1 : 0), i < -1 ? (t[e++] = this.pa + i) : i > 0 && (t[e++] = i), (t._ = e), t.qa();\n }),\n (r.prototype.xa = function (n, t) {\n var e = this.abs(),\n i = n.abs(),\n o = e._;\n for (t._ = o + i._; --o >= 0; ) t[o] = 0;\n for (o = 0; o < i._; ++o) t[o + e._] = e.va(0, i[o], t, o, 0, e._);\n (t.s = 0), t.qa(), this.s != n.s && r.ZERO.Va(t, t);\n }),\n (r.prototype.Fa = function (n) {\n for (var t = this.abs(), e = (n._ = 2 * t._); --e >= 0; ) n[e] = 0;\n for (e = 0; e < t._ - 1; ++e) {\n var i = t.va(e, t[e], n, 2 * e, 0, 1);\n (n[e + t._] += t.va(e + 1, 2 * t[e], n, 2 * e + 1, i, t._ - e - 1)) >= t.pa && ((n[e + t._] -= t.pa), (n[e + t._ + 1] = 1));\n }\n n._ > 0 && (n[n._ - 1] += t.va(e, t[e], n, 2 * e, 0, 1)), (n.s = 0), n.qa();\n }),\n (r.prototype.Ma = function (n, t, e) {\n var i = n.abs();\n if (!(i._ <= 0)) {\n var u = this.abs();\n if (u._ < i._) return null != t && t.ba(0), void (null != e && this.Ba(e));\n null == e && (e = o());\n var s = o(),\n a = this.s,\n f = n.s,\n c = this._a - d(i[i._ - 1]);\n c > 0 ? (i.Ha(c, s), u.Ha(c, e)) : (i.Ba(s), u.Ba(e));\n var l = s._,\n v = s[l - 1];\n if (0 != v) {\n var _ = v * (1 << this.ma) + (l > 1 ? s[l - 2] >> this.ya : 0),\n h = this.ga / _,\n p = (1 << this.ma) / _,\n g = 1 << this.ya,\n m = e._,\n y = m - l,\n b = null == t ? o() : t;\n for (s.La(y, b), e.Oa(b) >= 0 && ((e[e._++] = 1), e.Va(b, e)), r.ONE.La(l, b), b.Va(s, s); s._ < l; ) s[s._++] = 0;\n for (; --y >= 0; ) {\n var S = e[--m] == v ? this.ha : Math.floor(e[m] * h + (e[m - 1] + g) * p);\n if ((e[m] += s.va(0, S, e, y, 0, l)) < S) for (s.La(y, b), e.Va(b, e); e[m] < --S; ) e.Va(b, e);\n }\n null != t && (e.ja(l, t), a != f && r.ZERO.Va(t, t)), (e._ = l), e.qa(), c > 0 && e.Ka(c, e), a < 0 && r.ZERO.Va(e, e);\n }\n }\n }),\n (r.prototype.wa = function () {\n if (this._ < 1) return 0;\n var n = this[0];\n if (0 == (1 & n)) return 0;\n var t = 3 & n;\n return (t = ((t = ((t = ((t = (t * (2 - (15 & n) * t)) & 15) * (2 - (255 & n) * t)) & 255) * (2 - (((65535 & n) * t) & 65535))) & 65535) * (2 - ((n * t) % this.pa))) % this.pa) > 0 ? this.pa - t : -t;\n }),\n (r.prototype.Ja = function () {\n return 0 == (this._ > 0 ? 1 & this[0] : this.s);\n }),\n (r.prototype.exp = function (n, t) {\n if (n > 4294967295 || n < 1) return r.ONE;\n var e = o(),\n i = o(),\n u = t.Ta(this),\n s = d(n) - 1;\n for (u.Ba(e); --s >= 0; )\n if ((t.Wa(e, i), (n & (1 << s)) > 0)) t.Ua(i, u, e);\n else {\n var a = e;\n (e = i), (i = a);\n }\n return t.Ra(e);\n }),\n (r.prototype.toString = function (n) {\n if (this.s < 0) return "-" + this.Ya().toString(n);\n var t;\n if (16 == n) t = 4;\n else if (8 == n) t = 3;\n else if (2 == n) t = 1;\n else if (32 == n) t = 5;\n else {\n if (4 != n) return this.za(n);\n t = 2;\n }\n var e,\n i = (1 << t) - 1,\n r = !1,\n o = "",\n u = this._,\n s = this._a - ((u * this._a) % t);\n if (u-- > 0)\n for (s < this._a && (e = this[u] >> s) > 0 && ((r = !0), (o = f(e))); u >= 0; )\n s < t ? ((e = (this[u] & ((1 << s) - 1)) << (t - s)), (e |= this[--u] >> (s += this._a - t))) : ((e = (this[u] >> (s -= t)) & i), s <= 0 && ((s += this._a), --u)), e > 0 && (r = !0), r && (o += f(e));\n return r ? o : "0";\n }),\n (r.prototype.Ya = function () {\n var n = o();\n return r.ZERO.Va(this, n), n;\n }),\n (r.prototype.abs = function () {\n return this.s < 0 ? this.Ya() : this;\n }),\n (r.prototype.Oa = function (n) {\n var t = this.s - n.s;\n if (0 != t) return t;\n var e = this._;\n if (0 != (t = e - n._)) return this.s < 0 ? -t : t;\n for (; --e >= 0; ) if (0 != (t = this[e] - n[e])) return t;\n return 0;\n }),\n (r.prototype.Xa = function () {\n return this._ <= 0 ? 0 : this._a * (this._ - 1) + d(this[this._ - 1] ^ (this.s & this.ha));\n }),\n (r.prototype.ka = function (n) {\n var t = o();\n return this.abs().Ma(n, null, t), this.s < 0 && t.Oa(r.ZERO) > 0 && n.Va(t, t), t;\n }),\n (r.prototype.Qa = function (n, t) {\n var e;\n return (e = n < 256 || t.Ja() ? new v(t) : new _(t)), this.exp(n, e);\n }),\n (r.ZERO = l(0)),\n (r.ONE = l(1)),\n (S.prototype.Ta = w),\n (S.prototype.Ra = w),\n (S.prototype.Ua = function (n, t, e) {\n n.xa(t, e);\n }),\n (S.prototype.Wa = function (n, t) {\n n.Fa(t);\n }),\n (E.prototype.Ta = function (n) {\n if (n.s < 0 || n._ > 2 * this.o._) return n.ka(this.o);\n if (n.Oa(this.o) < 0) return n;\n var t = o();\n return n.Ba(t), this.reduce(t), t;\n }),\n (E.prototype.Ra = function (n) {\n return n;\n }),\n (E.prototype.reduce = function (n) {\n for (n.ja(this.o._ - 1, this.r2), n._ > this.o._ + 1 && ((n._ = this.o._ + 1), n.qa()), this.Da.$a(this.r2, this.o._ + 1, this.Ca), this.o.Za(this.Ca, this.o._ + 1, this.r2); n.Oa(this.r2) < 0; )\n n.nf(1, this.o._ + 1);\n for (n.Va(this.r2, n); n.Oa(this.o) >= 0; ) n.Va(this.o, n);\n }),\n (E.prototype.Ua = function (n, t, e) {\n n.xa(t, e), this.reduce(e);\n }),\n (E.prototype.Wa = function (n, t) {\n n.Fa(t), this.reduce(t);\n });\n var I = [\n 2,\n 3,\n 5,\n 7,\n 11,\n 13,\n 17,\n 19,\n 23,\n 29,\n 31,\n 37,\n 41,\n 43,\n 47,\n 53,\n 59,\n 61,\n 67,\n 71,\n 73,\n 79,\n 83,\n 89,\n 97,\n 101,\n 103,\n 107,\n 109,\n 113,\n 127,\n 131,\n 137,\n 139,\n 149,\n 151,\n 157,\n 163,\n 167,\n 173,\n 179,\n 181,\n 191,\n 193,\n 197,\n 199,\n 211,\n 223,\n 227,\n 229,\n 233,\n 239,\n 241,\n 251,\n 257,\n 263,\n 269,\n 271,\n 277,\n 281,\n 283,\n 293,\n 307,\n 311,\n 313,\n 317,\n 331,\n 337,\n 347,\n 349,\n 353,\n 359,\n 367,\n 373,\n 379,\n 383,\n 389,\n 397,\n 401,\n 409,\n 419,\n 421,\n 431,\n 433,\n 439,\n 443,\n 449,\n 457,\n 461,\n 463,\n 467,\n 479,\n 487,\n 491,\n 499,\n 503,\n 509,\n 521,\n 523,\n 541,\n 547,\n 557,\n 563,\n 569,\n 571,\n 577,\n 587,\n 593,\n 599,\n 601,\n 607,\n 613,\n 617,\n 619,\n 631,\n 641,\n 643,\n 647,\n 653,\n 659,\n 661,\n 673,\n 677,\n 683,\n 691,\n 701,\n 709,\n 719,\n 727,\n 733,\n 739,\n 743,\n 751,\n 757,\n 761,\n 769,\n 773,\n 787,\n 797,\n 809,\n 811,\n 821,\n 823,\n 827,\n 829,\n 839,\n 853,\n 857,\n 859,\n 863,\n 877,\n 881,\n 883,\n 887,\n 907,\n 911,\n 919,\n 929,\n 937,\n 941,\n 947,\n 953,\n 967,\n 971,\n 977,\n 983,\n 991,\n 997,\n ],\n P = (1 << 26) / I[I.length - 1];\n function A() {\n (this.t = 0), (this.tf = 0), (this.ef = []);\n }\n (r.prototype["if"] = function (n) {\n return Math.floor((Math.LN2 * this._a) / Math.log(n));\n }),\n (r.prototype.za = function (n) {\n if ((null == n && (n = 10), 0 == this.rf() || n < 2 || n > 36)) return "0";\n var t = this["if"](n),\n e = Math.pow(n, t),\n i = l(e),\n r = o(),\n u = o(),\n s = "";\n for (this.Ma(i, r, u); r.rf() > 0; ) (s = (e + u.uf()).toString(n).substr(1) + s), r.Ma(i, r, u);\n return u.uf().toString(n) + s;\n }),\n (r.prototype.Ga = function (n, t) {\n this.ba(0), null == t && (t = 10);\n for (var e = this["if"](t), i = Math.pow(t, e), o = !1, u = 0, s = 0, a = 0; a < n.length; ++a) {\n var f = c(n, a);\n f < 0 ? "-" == n.charAt(a) && 0 == this.rf() && (o = !0) : ((s = t * s + f), ++u >= e && (this.af(i), this.nf(s, 0), (u = 0), (s = 0)));\n }\n u > 0 && (this.af(Math.pow(t, u)), this.nf(s, 0)), o && r.ZERO.Va(this, this);\n }),\n (r.prototype.la = function (n, t, e) {\n if ("number" == typeof t)\n if (n < 2) this.ba(1);\n else for (this.la(n, e), this.ff(n - 1) || this.cf(r.ONE.shiftLeft(n - 1), p, this), this.Ja() && this.nf(1, 0); !this.lf(t); ) this.nf(2, 0), this.Xa() > n && this.Va(r.ONE.shiftLeft(n - 1), this);\n else {\n var i = [],\n o = 7 & n;\n (i.length = 1 + (n >> 3)), t.df(i), o > 0 ? (i[0] &= (1 << o) - 1) : (i[0] = 0), this.da(i, 256);\n }\n }),\n (r.prototype.cf = function (n, t, e) {\n var i,\n r,\n o = Math.min(n._, this._);\n for (i = 0; i < o; ++i) e[i] = t(this[i], n[i]);\n if (n._ < this._) {\n for (r = n.s & this.ha, i = o; i < this._; ++i) e[i] = t(this[i], r);\n e._ = this._;\n } else {\n for (r = this.s & this.ha, i = o; i < n._; ++i) e[i] = t(r, n[i]);\n e._ = n._;\n }\n (e.s = t(this.s, n.s)), e.qa();\n }),\n (r.prototype.vf = function (n, t) {\n var e = r.ONE.shiftLeft(n);\n return this.cf(e, t, e), e;\n }),\n (r.prototype._f = function (n, t) {\n for (var e = 0, i = 0, r = Math.min(n._, this._); e < r; ) (i += this[e] + n[e]), (t[e++] = i & this.ha), (i >>= this._a);\n if (n._ < this._) {\n for (i += n.s; e < this._; ) (i += this[e]), (t[e++] = i & this.ha), (i >>= this._a);\n i += this.s;\n } else {\n for (i += this.s; e < n._; ) (i += n[e]), (t[e++] = i & this.ha), (i >>= this._a);\n i += n.s;\n }\n (t.s = i < 0 ? -1 : 0), i > 0 ? (t[e++] = i) : i < -1 && (t[e++] = this.pa + i), (t._ = e), t.qa();\n }),\n (r.prototype.af = function (n) {\n (this[this._] = this.va(0, n - 1, this, 0, 0, this._)), ++this._, this.qa();\n }),\n (r.prototype.nf = function (n, t) {\n if (0 != n) {\n for (; this._ <= t; ) this[this._++] = 0;\n for (this[t] += n; this[t] >= this.pa; ) (this[t] -= this.pa), ++t >= this._ && (this[this._++] = 0), ++this[t];\n }\n }),\n (r.prototype.Za = function (n, t, e) {\n var i,\n r = Math.min(this._ + n._, t);\n for (e.s = 0, e._ = r; r > 0; ) e[--r] = 0;\n for (i = e._ - this._; r < i; ++r) e[r + this._] = this.va(0, n[r], e, r, 0, this._);\n for (i = Math.min(n._, t); r < i; ++r) this.va(0, n[r], e, r, 0, t - r);\n e.qa();\n }),\n (r.prototype.$a = function (n, t, e) {\n --t;\n var i = (e._ = this._ + n._ - t);\n for (e.s = 0; --i >= 0; ) e[i] = 0;\n for (i = Math.max(t - this._, 0); i < n._; ++i) e[this._ + i - t] = this.va(t - i, n[i], e, 0, 0, this._ + i - t);\n e.qa(), e.ja(1, e);\n }),\n (r.prototype.hf = function (n) {\n if (n <= 0) return 0;\n var t = this.pa % n,\n e = this.s < 0 ? n - 1 : 0;\n if (this._ > 0)\n if (0 == t) e = this[0] % n;\n else for (var i = this._ - 1; i >= 0; --i) e = (t * e + this[i]) % n;\n return e;\n }),\n (r.prototype.pf = function (n) {\n var t = this.gf(r.ONE),\n e = t.mf();\n if (e <= 0) return !1;\n var i = t.yf(e);\n (n = (n + 1) >> 1) > I.length && (n = I.length);\n for (var u = o(), s = 0; s < n; ++s) {\n u.ba(I[Math.floor(Math.random() * I.length)]);\n var a = u.bf(i, this);\n if (0 != a.Oa(r.ONE) && 0 != a.Oa(t)) {\n for (var f = 1; f++ < e && 0 != a.Oa(t); ) if (0 == (a = a.Qa(2, this)).Oa(r.ONE)) return !1;\n if (0 != a.Oa(t)) return !1;\n }\n }\n return !0;\n }),\n (r.prototype.clone = function () {\n var n = o();\n return this.Ba(n), n;\n }),\n (r.prototype.uf = function () {\n if (this.s < 0) {\n if (1 == this._) return this[0] - this.pa;\n if (0 == this._) return -1;\n } else {\n if (1 == this._) return this[0];\n if (0 == this._) return 0;\n }\n return ((this[1] & ((1 << (32 - this._a)) - 1)) << this._a) | this[0];\n }),\n (r.prototype.Sf = function () {\n return 0 == this._ ? this.s : (this[0] << 24) >> 24;\n }),\n (r.prototype.wf = function () {\n return 0 == this._ ? this.s : (this[0] << 16) >> 16;\n }),\n (r.prototype.rf = function () {\n return this.s < 0 ? -1 : this._ <= 0 || (1 == this._ && this[0] <= 0) ? 0 : 1;\n }),\n (r.prototype.Ef = function () {\n var n = this._,\n t = [];\n t[0] = this.s;\n var e,\n i = this._a - ((n * this._a) % 8),\n r = 0;\n if (n-- > 0)\n for (i < this._a && (e = this[n] >> i) != (this.s & this.ha) >> i && (t[r++] = e | (this.s << (this._a - i))); n >= 0; )\n i < 8 ? ((e = (this[n] & ((1 << i) - 1)) << (8 - i)), (e |= this[--n] >> (i += this._a - 8))) : ((e = (this[n] >> (i -= 8)) & 255), i <= 0 && ((i += this._a), --n)),\n 0 != (128 & e) && (e |= -256),\n 0 == r && (128 & this.s) != (128 & e) && ++r,\n (r > 0 || e != this.s) && (t[r++] = e);\n return t;\n }),\n (r.prototype.If = function (n) {\n return 0 == this.Oa(n);\n }),\n (r.prototype.min = function (n) {\n return this.Oa(n) < 0 ? this : n;\n }),\n (r.prototype.max = function (n) {\n return this.Oa(n) > 0 ? this : n;\n }),\n (r.prototype.Pf = function (n) {\n var t = o();\n return this.cf(n, h, t), t;\n }),\n (r.prototype.Af = function (n) {\n var t = o();\n return this.cf(n, p, t), t;\n }),\n (r.prototype.Cf = function (n) {\n var t = o();\n return this.cf(n, g, t), t;\n }),\n (r.prototype.Lf = function (n) {\n var t = o();\n return this.cf(n, m, t), t;\n }),\n (r.prototype.Df = function () {\n for (var n = o(), t = 0; t < this._; ++t) n[t] = this.ha & ~this[t];\n return (n._ = this._), (n.s = ~this.s), n;\n }),\n (r.prototype.shiftLeft = function (n) {\n var t = o();\n return n < 0 ? this.Ka(-n, t) : this.Ha(n, t), t;\n }),\n (r.prototype.yf = function (n) {\n var t = o();\n return n < 0 ? this.Ha(-n, t) : this.Ka(n, t), t;\n }),\n (r.prototype.mf = function () {\n for (var n = 0; n < this._; ++n) if (0 != this[n]) return n * this._a + y(this[n]);\n return this.s < 0 ? this._ * this._a : -1;\n }),\n (r.prototype.Nf = function () {\n for (var n = 0, t = this.s & this.ha, e = 0; e < this._; ++e) n += b(this[e] ^ t);\n return n;\n }),\n (r.prototype.ff = function (n) {\n var t = Math.floor(n / this._a);\n return t >= this._ ? 0 != this.s : 0 != (this[t] & (1 << n % this._a));\n }),\n (r.prototype.Tf = function (n) {\n return this.vf(n, p);\n }),\n (r.prototype.Of = function (n) {\n return this.vf(n, m);\n }),\n (r.prototype.kf = function (n) {\n return this.vf(n, g);\n }),\n (r.prototype.add = function (n) {\n var t = o();\n return this._f(n, t), t;\n }),\n (r.prototype.gf = function (n) {\n var t = o();\n return this.Va(n, t), t;\n }),\n (r.prototype.multiply = function (n) {\n var t = o();\n return this.xa(n, t), t;\n }),\n (r.prototype.Na = function (n) {\n var t = o();\n return this.Ma(n, t, null), t;\n }),\n (r.prototype.Rf = function (n) {\n var t = o();\n return this.Ma(n, null, t), t;\n }),\n (r.prototype.Mf = function (n) {\n var t = o(),\n e = o();\n return this.Ma(n, t, e), [t, e];\n }),\n (r.prototype.bf = function (n, t) {\n var e,\n i,\n r = n.Xa(),\n u = l(1);\n if (r <= 0) return u;\n (e = r < 18 ? 1 : r < 48 ? 3 : r < 144 ? 4 : r < 768 ? 5 : 6), (i = r < 8 ? new v(t) : t.Ja() ? new E(t) : new _(t));\n var s = [],\n a = 3,\n f = e - 1,\n c = (1 << e) - 1;\n if (((s[1] = i.Ta(this)), e > 1)) {\n var h = o();\n for (i.Wa(s[1], h); a <= c; ) (s[a] = o()), i.Ua(h, s[a - 2], s[a]), (a += 2);\n }\n var p,\n g,\n m = n._ - 1,\n y = !0,\n b = o();\n for (r = d(n[m]) - 1; m >= 0; ) {\n for (r >= f ? (p = (n[m] >> (r - f)) & c) : ((p = (n[m] & ((1 << (r + 1)) - 1)) << (f - r)), m > 0 && (p |= n[m - 1] >> (this._a + r - f))), a = e; 0 == (1 & p); ) (p >>= 1), --a;\n if (((r -= a) < 0 && ((r += this._a), --m), y)) s[p].Ba(u), (y = !1);\n else {\n for (; a > 1; ) i.Wa(u, b), i.Wa(b, u), (a -= 2);\n a > 0 ? i.Wa(u, b) : ((g = u), (u = b), (b = g)), i.Ua(b, s[p], u);\n }\n for (; m >= 0 && 0 == (n[m] & (1 << r)); ) i.Wa(u, b), (g = u), (u = b), (b = g), --r < 0 && ((r = this._a - 1), --m);\n }\n return i.Ra(u);\n }),\n (r.prototype.Uf = function (n) {\n var t = n.Ja();\n if ((this.Ja() && t) || 0 == n.rf()) return r.ZERO;\n for (var e = n.clone(), i = this.clone(), o = l(1), u = l(0), s = l(0), a = l(1); 0 != e.rf(); ) {\n for (; e.Ja(); ) e.Ka(1, e), t ? ((o.Ja() && u.Ja()) || (o._f(this, o), u.Va(n, u)), o.Ka(1, o)) : u.Ja() || u.Va(n, u), u.Ka(1, u);\n for (; i.Ja(); ) i.Ka(1, i), t ? ((s.Ja() && a.Ja()) || (s._f(this, s), a.Va(n, a)), s.Ka(1, s)) : a.Ja() || a.Va(n, a), a.Ka(1, a);\n e.Oa(i) >= 0 ? (e.Va(i, e), t && o.Va(s, o), u.Va(a, u)) : (i.Va(e, i), t && s.Va(o, s), a.Va(u, a));\n }\n return 0 != i.Oa(r.ONE) ? r.ZERO : a.Oa(n) >= 0 ? a.gf(n) : a.rf() < 0 ? (a._f(n, a), a.rf() < 0 ? a.add(n) : a) : a;\n }),\n (r.prototype.pow = function (n) {\n return this.exp(n, new S());\n }),\n (r.prototype.xf = function (n) {\n var t = this.s < 0 ? this.Ya() : this.clone(),\n e = n.s < 0 ? n.Ya() : n.clone();\n if (t.Oa(e) < 0) {\n var i = t;\n (t = e), (e = i);\n }\n var r = t.mf(),\n o = e.mf();\n if (o < 0) return t;\n for (r < o && (o = r), o > 0 && (t.Ka(o, t), e.Ka(o, e)); t.rf() > 0; ) (r = t.mf()) > 0 && t.Ka(r, t), (r = e.mf()) > 0 && e.Ka(r, e), t.Oa(e) >= 0 ? (t.Va(e, t), t.Ka(1, t)) : (e.Va(t, e), e.Ka(1, e));\n return o > 0 && e.Ha(o, e), e;\n }),\n (r.prototype.lf = function (n) {\n var t,\n e = this.abs();\n if (1 == e._ && e[0] <= I[I.length - 1]) {\n for (t = 0; t < I.length; ++t) if (e[0] == I[t]) return !0;\n return !1;\n }\n if (e.Ja()) return !1;\n for (t = 1; t < I.length; ) {\n for (var i = I[t], r = t + 1; r < I.length && i < P; ) i *= I[r++];\n for (i = e.hf(i); t < r; ) if (i % I[t++] == 0) return !1;\n }\n return e.pf(n);\n }),\n (r.prototype.Wf = function () {\n var n = o();\n return this.Fa(n), n;\n }),\n (A.prototype.init = function (n) {\n var t, e, i;\n for (t = 0; t < 256; ++t) this.ef[t] = t;\n for (e = 0, t = 0; t < 256; ++t) (e = (e + this.ef[t] + n[t % n.length]) & 255), (i = this.ef[t]), (this.ef[t] = this.ef[e]), (this.ef[e] = i);\n (this.t = 0), (this.tf = 0);\n }),\n (A.prototype.next = function () {\n var n;\n return (this.t = (this.t + 1) & 255), (this.tf = (this.tf + this.ef[this.t]) & 255), (n = this.ef[this.t]), (this.ef[this.t] = this.ef[this.tf]), (this.ef[this.tf] = n), this.ef[(n + this.ef[this.t]) & 255];\n });\n var C, L, D;\n function N() {\n var n;\n (n = new Date().getTime()), (L[D++] ^= 255 & n), (L[D++] ^= (n >> 8) & 255), (L[D++] ^= (n >> 16) & 255), (L[D++] ^= (n >> 24) & 255), D >= 256 && (D -= 256);\n }\n if (null == L) {\n var T;\n for (L = [], D = 0; D < 256; ) (T = Math.floor(65536 * Math.random())), (L[D++] = T >>> 8), (L[D++] = 255 & T);\n (D = 0), N();\n }\n function O() {\n if (null == C) {\n for (N(), (C = new A()).init(L), D = 0; D < L.length; ++D) L[D] = 0;\n D = 0;\n }\n return C.next();\n }\n function k() {}\n function R(n, t) {\n return new r(n, t);\n }\n function M() {\n (this.n = null), (this.e = 0), (this.d = null), (this.p = null), (this.q = null), (this.dmp1 = null), (this.dmq1 = null), (this.coeff = null);\n }\n (k.prototype.df = function (n) {\n var t;\n for (t = 0; t < n.length; ++t) n[t] = O();\n }),\n (M.prototype.Ff = function (n) {\n return n.Qa(this.e, this.n);\n }),\n (M.prototype.Vf = function (n, t) {\n null != n && null != t && n.length > 0 && t.length > 0 ? ((this.n = R(n, 16)), (this.e = parseInt(t, 16))) : alert("Invalid RSA public key");\n }),\n (M.prototype.encrypt = function (n) {\n var t = (function (n, t) {\n if (t < n.length + 11) return alert("Message too long for RSA"), null;\n for (var e = [], i = n.length - 1; i >= 0 && t > 0; ) {\n var o = n.charCodeAt(i--);\n o < 128 ? (e[--t] = o) : o > 127 && o < 2048 ? ((e[--t] = (63 & o) | 128), (e[--t] = (o >> 6) | 192)) : ((e[--t] = (63 & o) | 128), (e[--t] = ((o >> 6) & 63) | 128), (e[--t] = (o >> 12) | 224));\n }\n e[--t] = 0;\n for (var u = new k(), s = []; t > 2; ) {\n for (s[0] = 0; 0 == s[0]; ) u.df(s);\n e[--t] = s[0];\n }\n return (e[--t] = 2), (e[--t] = 0), new r(e);\n })(n, (this.n.Xa() + 7) >> 3);\n if (null == t) return null;\n var e = this.Ff(t);\n if (null == e) return null;\n var i = e.toString(16);\n return 0 == (1 & i.length) ? i : "0" + i;\n }),\n (M.prototype.Bf = function (n) {\n if (null == this.p || null == this.q) return n.bf(this.d, this.n);\n for (var t = n.ka(this.p).bf(this.dmp1, this.p), e = n.ka(this.q).bf(this.dmq1, this.q); t.Oa(e) < 0; ) t = t.add(this.p);\n return t.gf(e).multiply(this.coeff).ka(this.p).multiply(this.q).add(e);\n }),\n (M.prototype.qf = function (n, t, e) {\n null != n && null != t && n.length > 0 && t.length > 0 ? ((this.n = R(n, 16)), (this.e = parseInt(t, 16)), (this.d = R(e, 16))) : alert("Invalid RSA private key");\n }),\n (M.prototype.jf = function (n, t, e, i, r, o, u, s) {\n null != n && null != t && n.length > 0 && t.length > 0\n ? ((this.n = R(n, 16)), (this.e = parseInt(t, 16)), (this.d = R(e, 16)), (this.p = R(i, 16)), (this.q = R(r, 16)), (this.dmp1 = R(o, 16)), (this.dmq1 = R(u, 16)), (this.coeff = R(s, 16)))\n : alert("Invalid RSA private key");\n }),\n (M.prototype.Gf = function (n, t) {\n var e = new k(),\n i = n >> 1;\n this.e = parseInt(t, 16);\n for (var o = new r(t, 16); ; ) {\n for (; (this.p = new r(n - i, 1, e)), 0 != this.p.gf(r.ONE).xf(o).Oa(r.ONE) || !this.p.lf(10); );\n for (; (this.q = new r(i, 1, e)), 0 != this.q.gf(r.ONE).xf(o).Oa(r.ONE) || !this.q.lf(10); );\n if (this.p.Oa(this.q) <= 0) {\n var u = this.p;\n (this.p = this.q), (this.q = u);\n }\n var s = this.p.gf(r.ONE),\n a = this.q.gf(r.ONE),\n f = s.multiply(a);\n if (0 == f.xf(o).Oa(r.ONE)) {\n (this.n = this.p.multiply(this.q)), (this.d = o.Uf(f)), (this.dmp1 = this.d.ka(s)), (this.dmq1 = this.d.ka(a)), (this.coeff = this.q.Uf(this.p));\n break;\n }\n }\n }),\n (M.prototype.decrypt = function (n) {\n var t = R(n, 16),\n e = this.Bf(t);\n return null == e\n ? null\n : (function (n, t) {\n for (var e = n.Ef(), i = 0; i < e.length && 0 == e[i]; ) ++i;\n if (e.length - i != t - 1 || 2 != e[i]) return null;\n for (++i; 0 != e[i]; ) if (++i >= e.length) return null;\n for (var r = ""; ++i < e.length; ) {\n var o = 255 & e[i];\n o < 128\n ? (r += String.fromCharCode(o))\n : o > 191 && o < 224\n ? ((r += String.fromCharCode(((31 & o) << 6) | (63 & e[i + 1]))), ++i)\n : ((r += String.fromCharCode(((15 & o) << 12) | ((63 & e[i + 1]) << 6) | (63 & e[i + 2]))), (i += 2));\n }\n return r;\n })(e, (this.n.Xa() + 7) >> 3);\n });\n var U = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\n function x(n) {\n var t,\n e,\n i = "";\n for (t = 0; t + 3 <= n.length; t += 3) (e = parseInt(n.substring(t, t + 3), 16)), (i += U.charAt(e >> 6) + U.charAt(63 & e));\n for (\n t + 1 == n.length ? ((e = parseInt(n.substring(t, t + 1), 16)), (i += U.charAt(e << 2))) : t + 2 == n.length && ((e = parseInt(n.substring(t, t + 2), 16)), (i += U.charAt(e >> 2) + U.charAt((3 & e) << 4)));\n (3 & i.length) > 0;\n\n )\n i += "=";\n return i;\n }\n function W(n) {\n var t,\n e,\n i = "",\n r = 0;\n for (t = 0; t < n.length && "=" != n.charAt(t); ++t) {\n var o = U.indexOf(n.charAt(t));\n o < 0 ||\n (0 == r\n ? ((i += f(o >> 2)), (e = 3 & o), (r = 1))\n : 1 == r\n ? ((i += f((e << 2) | (o >> 4))), (e = 15 & o), (r = 2))\n : 2 == r\n ? ((i += f(e)), (i += f(o >> 2)), (e = 3 & o), (r = 3))\n : ((i += f((e << 2) | (o >> 4))), (i += f(15 & o)), (r = 0)));\n }\n return 1 == r && (i += f(e << 2)), i;\n }\n (M.prototype.Hf = function (n) {\n n = this.Kf(n);\n var t = this.Jf(),\n e = 0,\n i = null,\n r = null,\n o = 0;\n for (var u in t)\n t.hasOwnProperty(u) &&\n ((i = t[u]).hasOwnProperty("offset") && (e += 2 * i.offset),\n (o = "string" == typeof i.length ? this[i.length] : i.length),\n (o *= 2),\n (r = n.substr(e, o)),\n i.hasOwnProperty("type") && ("int" == i.type ? (r = parseInt(r, 16)) : "bigint" == i.type && (r = R(r, 16))),\n (e += o),\n (this[u] = r));\n }),\n (M.prototype.Yf = function (n) {\n var t = "";\n n = e(n);\n for (var i = 0; i < n.length; ++i) {\n var r = n.charCodeAt(i).toString(16);\n 1 === r.length && (r = "0" + r), (t += r);\n }\n return t;\n }),\n (M.prototype.Kf = function (n) {\n var t = (n = n.replace(/^\\s+|\\s+$/g, "")).split(/\\r?\\n/);\n return "-----BEGIN" == t[0].substring(0, 10) && (t = t.slice(1, t.length - 1)), (n = t.join("")), this.Yf(n);\n }),\n (M.prototype.zf = function () {\n var n = "",\n t = this.Jf(),\n e = null,\n i = null,\n r = 0;\n for (var o in t)\n t.hasOwnProperty(o) &&\n (e = t[o]).Xf &&\n ((i = this[o].toString(16)).length % 2 && (i = "0" + i),\n e.hasOwnProperty("padded") && e.Qf && (i = "00" + i),\n (r = (r = i.length / 2).toString(16)).length % 2 && (r = "0" + r),\n e.hasOwnProperty("extraspace") && (n += r),\n (n += r),\n (n += i),\n (n += "02"));\n return n.slice(0, -2);\n }),\n (M.prototype.$f = function (n, t) {\n if (!n) return n;\n var e = "(.{1," + (t = t || 64) + "})( +|$\\n?)|(.{1," + t + "})";\n return n.match(new RegExp(e, "g")).join("\\n");\n }),\n (M.prototype.Zf = function () {\n var n = "-----BEGIN RSA PRIVATE KEY-----\\n",\n t = "3082025e02010002";\n return (t += this.zf()), (n += this.$f(x(t)) + "\\n"), (n += "-----END RSA PRIVATE KEY-----");\n }),\n (M.prototype.nc = function () {\n var n = "-----BEGIN PUBLIC KEY-----\\n",\n t = "30819f300d06092a864886f70d010101050003818d0030818902";\n return (t += this.zf()), (n += this.$f(x(t)) + "\\n"), (n += "-----END PUBLIC KEY-----");\n });\n var F = function (n) {\n M.call(this), n && this.Hf(n);\n };\n ((F.prototype = new M()).constructor = F),\n (F.prototype.Jf = function () {\n return {\n header: { length: 4 },\n versionlength: { length: 1, offset: 1, type: "int" },\n version: { length: "versionlength", type: "int" },\n n_length: { length: 1, offset: 2, type: "int" },\n n: { length: "n_length", type: "bigint", Xf: !0, Qf: !0, tc: !0 },\n e_length: { length: 1, offset: 1, type: "int" },\n e: { length: "e_length", type: "int", Xf: !0 },\n d_length: { length: 1, offset: 2, type: "int" },\n d: { length: "d_length", type: "bigint", Xf: !0, Qf: !0, tc: !0 },\n p_length: { length: 1, offset: 1, type: "int" },\n p: { length: "p_length", type: "bigint", Xf: !0, Qf: !0 },\n q_length: { length: 1, offset: 1, type: "int" },\n q: { length: "q_length", type: "bigint", Xf: !0, Qf: !0 },\n dmp1_length: { length: 1, offset: 1, type: "int" },\n dmp1: { length: "dmp1_length", type: "bigint", Xf: !0 },\n dmq1_length: { length: 1, offset: 1, type: "int" },\n dmq1: { length: "dmq1_length", type: "bigint", Xf: !0, Qf: !0 },\n coeff_length: { length: 1, offset: 1, type: "int" },\n coeff: { length: "coeff_length", type: "bigint", Xf: !0, Qf: !0 },\n };\n });\n var V = function (n) {\n M.call(this), n && ("string" == typeof n ? this.Hf(n) : n.hasOwnProperty("n") && n.hasOwnProperty("e") && ((this.n = n.n), (this.e = n.e)));\n };\n ((V.prototype = new M()).constructor = V),\n (V.prototype.Jf = function () {\n return {\n header: { length: 25 },\n n_length: { length: 1, offset: 2, type: "int" },\n n: { length: "n_length", type: "bigint", Xf: !0, Qf: !0, tc: !0 },\n e_length: { length: 1, offset: 1, type: "int" },\n e: { length: "e_length", type: "int", Xf: !0 },\n };\n });\n var B = function () {\n (this.ec = null), (this.ic = null);\n };\n return (\n (B.prototype.rc = function (n) {\n (this.ec = new F(n)), (this.ic = new V(this.ec));\n }),\n (B.prototype.oc = function (n) {\n this.ic = new V(n);\n }),\n (B.prototype.decrypt = function (n) {\n return !!this.ec && this.ec.decrypt(W(n));\n }),\n (B.prototype.encrypt = function (n) {\n var t = this.ic || this.ec;\n return !!t && x(t.encrypt(n));\n }),\n (B.prototype.Zf = function () {\n return this.ec || ((this.ec = new F()), this.ec.Gf(1024, "010001"), (this.ic = new V(this.ec))), this.ec.Zf();\n }),\n (B.prototype.nc = function () {\n return this.ic || ((this.ic = new V()), this.ic.Gf(1024, "010001")), this.ic.nc();\n }),\n function (n) {\n var t = new B();\n return t.oc(i.xn), t.encrypt(n);\n }\n );\n })()),\n (n.exports = r.encrypt);\n },\n function (n, t, e) {\n var i = e(0),\n r = e(20),\n o = e(46),\n u = e(3).kn,\n s = e(88),\n a = e(89),\n f = e(26),\n c = e(13),\n l = e(9),\n d = e(21),\n v = e(11),\n _ = e(19),\n h = e(1);\n n.exports = function (n, t, e, p, g, m, y, b) {\n var S, w, E, I, P, A, C, L, D, N;\n function T() {\n for (var n = 0; n < N.length; n++) {\n var t = N[n];\n O(t.event, t.timestamp, t.uc, t.configuration);\n }\n N = [];\n }\n function O(n, i, o, a) {\n !(function (n) {\n n.setLabel("ns_ap_pn", u.an()),\n n.setLabel("ns_ap_pv", u.cn()),\n n.setLabel("ns_ap_pfm", u.fn()),\n n.setLabel("ns_ap_pfv", u.sn()),\n n.setLabel("ns_ap_device", u.un()),\n n.setLabel("ns_ap_lang", u.vn()),\n n.setLabel("ns_ap_ar", u.hn()),\n n.setLabel(\n "ns_radio",\n (function (n) {\n switch (n) {\n case l.EMULATOR:\n return "emu";\n case l.WIFI:\n return "wlan";\n case l.WWAN:\n return "wwan";\n case l.ETHERNET:\n return "eth";\n case l.BLUETOOTH:\n return "bth";\n default:\n return "unknown";\n }\n })(u.pn())\n ),\n n.setLabel("ns_ap_env", u.Dn()),\n n.zr() && n.setLabel("ns_ap_jb", r.re(u.gn()));\n })(n),\n (function (n, t) {\n n.setLabel("ns_ap_an", t.tn()), n.setLabel("ns_ap_res", u.dn()), n.setLabel("ns_ap_po", "0x0"), n.setLabel("ns_ap_sd", u.ln()), n.setLabel("ns_ap_ver", t.en()), n.setLabel("ns_ap_bi", t.vr());\n })(n, a);\n y.Ai(function (i) {\n b.sc(i, a, n),\n n.addLabels(i.mi),\n (function (n) {\n var t = m.Di();\n t.Oi && n.setLabel("ns_ak", t.Oi);\n t.Li && n.setLabel("ns_ap_ni", "1");\n })(n),\n u.mn(n.getLabels()),\n w.push(n),\n (function (n, t) {\n !(function (n, t) {\n var i = u.pn(),\n r = n.hr(),\n o = !1;\n (i != l.DISCONNECTED && r != d.CACHE && (r != d.LAN || (i != l.WWAN && i != l.BLUETOOTH))) || (o = !0);\n for (var a = 0; a < w.length; ++a) {\n var f = w[a];\n if (o) e.xr(f, n);\n else {\n var c = new s(f, M, U, n, t);\n n.pr() && u.yn("Comscore: " + c.ac()), c.Mr();\n }\n }\n e.Ur(), (w = []);\n })(n, t);\n })(a, i),\n t.he();\n });\n }\n function k(n, e) {\n return (\n (function (n, t) {\n var e = n.getIncludedPublishers();\n if (0 == e.length) return !0;\n for (var i = 0; i < e.length; ++i) if (t.sr(e[i])) return !0;\n return !1;\n })(n, e) &&\n (function () {\n var n = h.N();\n n < P ? ((A = 0), (P = n), (C = 0), (L = n), t.put(v.bt, C), t.put(v.St, L)) : (n - P > 1e3 && ((A = 0), (P = n)), n - L > 1e3 && ((C = 0), (L = n), t.put(v.bt, C), t.put(v.St, L)));\n if (A < 20 && C < 6e3) return A++, C++, t.put(v.bt, C), !0;\n return !1;\n })()\n );\n }\n function R(e, i, r, o) {\n k(r, o) &&\n (t.put(v.Qn, h.N()),\n n._e(i, !0),\n (function (e, i, r, o) {\n 0 == S && e.zr() && ((E = h.N()), t.put(v.yt, E), I++, t.put(v.wt, I), e.setLabel("ns_ap_csf", "1"), e.setLabel("ns_ap_cfg", o.ur()));\n S++,\n e.setLabel("ns_ts", i + ""),\n e.setLabel("ns_ap_ec", S + ""),\n e.setLabel("ns_ap_cs", I + ""),\n e.setLabel("ns_ap_id", E + ""),\n n.me() == f.Fe.ce ? e.setLabel("name", "foreground") : n.me() == f.Fe.le || n.me() == f.Fe.fe ? e.setLabel("name", "background") : e.setLabel("name", "Application");\n (r instanceof _ && !r.ne()) ||\n (function (t, e, i) {\n t.setLabel("ns_ap_fg", n.Ce() + ""),\n t.setLabel("ns_ap_ft", n.Ae(t.zr()) + ""),\n t.setLabel("ns_ap_dft", n.Pe() + ""),\n t.setLabel("ns_ap_bt", n.Le(t.zr()) + ""),\n t.setLabel("ns_ap_dbt", n.Ie() + ""),\n t.setLabel("ns_ap_it", n.Ee(t.zr()) + ""),\n t.setLabel("ns_ap_dit", n.we() + ""),\n t.setLabel("ns_ap_as", n.be() + ""),\n t.setLabel("ns_ap_das", n.Se() + ""),\n t.setLabel("ns_ap_ut", 1e3 * e.xi() + ""),\n t.setLabel("ns_ap_usage", i - n.De() + "");\n })(e, o, i);\n (function (n) {\n n.setLabel("c1", "19"), n.setLabel("ns_ap_smv", "6.4"), n.setLabel("ns_ap_bv", c.VERSION), n.setLabel("ns_ap_sv", c.VERSION);\n })(e),\n (function (n, t) {\n var e = t.getPartnerConfigurations();\n if (0 == t.getPartnerConfigurations().length) return;\n for (var i = "", r = "", o = 0; o < e.length; ++o) {\n var u = e[o];\n (i += u.getPartnerId() + ","), (r += u.getExternalClientId() + ",");\n }\n (i = i.substring(0, i.length - 1)), (r = r.substring(0, r.length - 1)), n.setLabel("cs_partner", i), n.setLabel("cs_xcid", r);\n })(e, o),\n e.addLabels(D),\n e.addLabels(r.getLabels()),\n a.fc(e, r, e.getLabels(), o);\n })(e, i, r, o),\n (D = {}),\n N.push({ event: e, timestamp: i, uc: r, configuration: o }),\n p.cc());\n }\n function M(n, i) {\n e.flush(i), e.nr(), t.he();\n }\n function U(n, i) {\n e.xr(n, i), e.nr(), e.Ur(), t.he();\n }\n i.extend(this, {\n Yi: function () {\n return S;\n },\n er: function (n, t, i) {\n var r;\n R(((r = new o()).setLabel("ns_type", "hidden"), r.setLabel("ns_ap_ev", "keep-alive"), r.setLabel("ns_ap_oc", e.Fr() + ""), r), n, t, i);\n },\n ki: function (t, e, i) {\n R(\n (function () {\n var t = new o();\n t.setLabel("ns_type", "view"), t.setLabel("ns_ap_ev", "start"), t.setLabel("ns_ap_gs", g.lc() + ""), t.setLabel("ns_ap_install", g.dc() + "");\n var e = n.Ne();\n return e > 0 && t.setLabel("ns_ap_lastrun", e + ""), g.vc() && t.setLabel("ns_ap_updated", g._c() + ""), t;\n })(),\n t,\n e,\n i\n );\n },\n $i: function (n, t, e) {\n R(\n (function () {\n var n = new o();\n return n.setLabel("ns_type", "hidden"), n.setLabel("ns_ap_ev", "hidden"), n;\n })(),\n n,\n t,\n e\n );\n },\n Zi: function (n, t, e) {\n R(\n (function () {\n var n = new o();\n return n.setLabel("ns_type", "view"), n.setLabel("ns_ap_ev", "view"), n;\n })(),\n n,\n t,\n e\n );\n },\n Bi: function (n, e) {\n (D[n] = e + ""), t.put(v.Et, D);\n },\n }),\n (S = 0),\n (w = []),\n (I = t.get(v.wt, 0)),\n (P = -1),\n (A = 0),\n (L = -1),\n (C = 0),\n (D = t.get(v.Et, {})),\n (N = []),\n p.addListener(T);\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(3).kn,\n o = e(20),\n u = e(1);\n n.exports = function (n, t, e, s, a) {\n var f;\n function c(i) {\n 200 == i || (s.isHttpRedirectCachingEnabled() && (302 == i || 301 == i)) ? t(n, s) : e(n, s);\n }\n !(function () {\n f = o.te(s.lr() || (s.isSecureTransmissionEnabled() ? (a.pi ? (u.D(r.V) ? r.V() : r.V) : u.D(r.j) ? r.j() : r.j) : a.pi ? (u.D(r.F) ? r.F() : r.F) : u.D(r.B) ? r.B() : r.B), n.getLabels(), s.getLabelOrder());\n var t = "undefined" == typeof window || (window.ActiveXObject, 1) ? 4096 : 2048;\n if (f.length > t && f.indexOf("&") > 0) {\n var e = f.substring(0, t - 8).lastIndexOf("&"),\n i = encodeURIComponent(f.substring(e + 1));\n f = f.substring(0, e) + "&ns_cut=" + i;\n }\n f.length > t && (f = f.substring(0, t));\n })(),\n i.extend(this, {\n Mr: function () {\n r.G ? r.G(f, c, s) : c();\n },\n ac: function () {\n return f;\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(34),\n r = e(0),\n o = e(19),\n u = e(3).kn,\n s = "a".charCodeAt(0);\n function a(n, t) {\n if (0 == t) return n;\n var e = String.fromCharCode(s + t - 1),\n i = (function (n) {\n var t = n.match(/^[cC](\\d|[12]\\d)$/);\n return t && t[1] ? t[1] : "";\n })(n);\n return String(i ? "c" + e + i : "c" + e + "_" + n);\n }\n function f(n, t, e) {\n var i = [],\n r = n.getPersistentLabels();\n for (var o in r) i.push(o);\n if (e) {\n var u = n.getStartLabels();\n for (o in u) i.push(o);\n }\n var s = t.getPublisherLabels(n.getPublisherId()),\n a = t.getLabels();\n for (o in s) o in a || i.push(o);\n return i;\n }\n var c = {\n fc: function (n, t, e, s) {\n for (var c = {}, l = n.zr(), d = [], v = [], _ = t.getIncludedPublishers(), h = s.getPublisherConfigurations(), p = 0; p < h.length; ++p) {\n var g = h[p],\n m = g.getPublisherId();\n m != i.qi && ((0 != _.length && -1 == _.indexOf(m)) || (d.push(g), v.push(m)));\n }\n if ((0 == _.length || -1 != _.indexOf(i.qi)) && s.getPartnerConfigurations().length > 0) {\n var y = (function (n) {\n for (var t = {}, e = {}, i = n.getPartnerConfigurations(), o = 0; o < i.length; ++o) {\n var u = i[o];\n r.extend(t, u.getPersistentLabels()), r.extend(e, u.getStartLabels());\n }\n return n.Er().copy({ persistentLabels: t, startLabels: e });\n })(s);\n d.push(y), v.push(y.getPublisherId());\n }\n for (var b = [], S = 0; S < d.length; ++S) {\n var w = d[S];\n if (S >= 26) break;\n var E = {};\n if (\n ((E.c2 = w.getPublisherId()),\n (E.c12 = w.getPublisherUniqueDeviceId()),\n u.Cn && (E.c12 = u.Ln),\n r.extend(E, e),\n r.extend(E, s.getPersistentLabels()),\n r.extend(E, w.getPersistentLabels()),\n r.extend(E, t.getLabels()),\n l && r.extend(E, s.getStartLabels()),\n r.extend(E, t.getPublisherLabels(w.getPublisherId())),\n l && r.extend(E, w.getStartLabels()),\n 0 == S)\n )\n (b = f(w, t, l)), r.extend(c, E);\n else {\n for (p = 0; p < b.length; ++p) {\n var I = b[p];\n I in E || (E[I] = "*null");\n }\n for (var P in E) (P in c && c[P] == E[P]) || (c[a(P, S)] = E[P]);\n }\n }\n if (t instanceof o) {\n var A = t.$t();\n for (p = 0; p < A.length; ++p) {\n var C = A[p];\n if (S >= 26) break;\n if (-1 == v.indexOf(C)) {\n var L = t.getPublisherLabels(C);\n for (P in ((c[a("c2", S)] = C), L)) (P in c && c[P] == L[P]) || (c[a(P, S)] = L[P]);\n S++;\n }\n }\n }\n n.addLabels(c);\n },\n };\n n.exports = c;\n },\n function (n, t, e) {\n var i = e(0);\n n.exports = function (n) {\n var t, e;\n !(function () {\n var e = n.getProperties();\n try {\n ((t = JSON.parse(e)) && "object" == typeof t) || (t = {});\n } catch (i) {\n t = {};\n }\n })(),\n (e = !1),\n i.extend(this, {\n put: function (n, i) {\n (t[n] = i), (e = !0);\n },\n get: function (n, e) {\n return n in t ? t[n] : e;\n },\n remove: function (n) {\n delete t[n], (e = !0);\n },\n contains: function (n) {\n return n in t;\n },\n clear: function () {\n t = {};\n },\n he: function () {\n var i;\n e && ((i = JSON.stringify(t)), n.storeProperties(i)), (e = !1);\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(3).kn;\n n.exports = function (n) {\n var t, e;\n function o() {\n e &&\n ((e = !1),\n (function () {\n n();\n for (var e = 0; e < t.length; e++) t[e]();\n })());\n }\n function u() {\n e && (e = !1);\n }\n (t = []),\n i.extend(this, {\n addListener: function (n) {\n t.push(n);\n },\n cc: function () {\n e || ((e = !0), r.Z(o, u));\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(11),\n o = e(1);\n n.exports = function (n, t) {\n var e,\n u,\n s,\n a,\n f = -1;\n !(function () {\n (s = !1), (a = !1), (f = n.get(r.Zn, -1)), (e = n.get(r.nt, -1)), (u = n.get(r.$n, null)), n.put(r.$n, t.en());\n var i = o.N();\n -1 == f ? ((f = i), (e = i), n.put(r.Zn, f), n.put(r.nt, e), (s = !0)) : u && u != t.en() && ((e = i), n.put(r.nt, e), n.put(r.wt, 0), (a = !0));\n })(),\n i.extend(this, {\n _c: function () {\n return u;\n },\n lc: function () {\n return f;\n },\n dc: function () {\n return e;\n },\n vc: function () {\n return a;\n },\n hc: function () {\n return s;\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(11),\n o = e(3).kn,\n u = [\n "previousVersion",\n "AppName",\n "AppVersion",\n "vid",\n "exitCode",\n "q_dcc",\n "q_dcf",\n "runs",\n "accumulatedActiveUserSessionTime",\n "accumulatedUserSessionTime",\n "activeUserSessionCount",\n "userSessionCount",\n "userInteractionCount",\n "lastActiveUserSessionTimestamp",\n "lastUserInteractionTimestamp",\n "lastUserSessionTimestamp",\n ],\n s = {\n CACHE_DROPPED_MEASUREMENTS: r.Xn,\n lastApplicationAccumulationTimestamp: r.rt,\n lastSessionAccumulationTimestamp: r.ot,\n lastApplicationSessionTimestamp: r.ut,\n foregroundTransitionsCount: r.st,\n accumulatedForegroundTime: r.ft,\n accumulatedBackgroundTime: r.ct,\n accumulatedInactiveTime: r.lt,\n totalForegroundTime: r.dt,\n totalBackgroundTime: r.vt,\n totalInactiveTime: r._t,\n accumulatedApplicationSessionTime: r.ht,\n applicationSessionCountKey: r.pt,\n genesis: r.gt,\n previousGenesis: r.yt,\n installId: r.nt,\n firstInstallId: r.Zn,\n currentVersion: r.$n,\n coldStartCount: r.wt,\n crossPublisherIdHashed: r.tt,\n crossPublisherId: r.et,\n },\n a = { pg: r.yt };\n n.exports = function () {\n var n = "function" == typeof o.J ? new o.J() : null;\n i.extend(this, {\n Gi: function (t) {\n if (n)\n for (var e in s) {\n var i = n.get(e);\n null != i && t.put(s[e], i);\n }\n for (var r in a) {\n var o = t.get(r);\n null != o && t.put(a[r], o);\n }\n },\n Hi: function (t) {\n if (n) {\n for (var e in s) n.remove(e);\n for (var i = 0; i < u.length; ++i) n.remove(u[i]);\n n.clear();\n }\n for (var r in a) t.remove(r);\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(46),\n o = e(3).kn,\n u = "cache_dir",\n s = "undefined" != typeof encodeURIComponent ? decodeURIComponent : unescape;\n n.exports = function (n, t, e) {\n var a = "function" == typeof o.J ? new o.J() : null,\n f = "function" == typeof o.Y ? new o.Y() : null,\n c = function () {\n return (f && f.dir(u)) || [];\n },\n l = function (n) {\n f && (f.deleteFile(u, n), a && a.remove(n));\n },\n d = function (n) {\n if (!f) return [];\n var t = f.read(u, n);\n return t ? t.split("\\n") : [];\n };\n function v(n) {\n for (var t = n.split("&"), e = new r(), i = 0; i < t.length; ++i) {\n var o = t[i].split("="),\n u = s(o[0]),\n a = s(o[1]);\n e.setLabel(u, a);\n }\n return e;\n }\n i.extend(this, {\n Ki: function () {\n var n = (function (n) {\n for (var t = [], e = 0; e < n.length; ++e) {\n var i = v(n[e]);\n t.push(i);\n }\n return t;\n })(\n (function () {\n for (var n = c(), t = [], e = 0; e < n.length; ++e) {\n var i = d(n[e]);\n t = t.concat(i);\n }\n return t;\n })()\n );\n e.Wr(n);\n },\n Ji: function () {\n for (var n = c(), t = 0; t < n.length; ++t) l(n[t]);\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(96),\n o = e(11),\n u = e(3).kn;\n n.exports = function () {\n var n,\n t = new r.pc(),\n e = !1,\n s = [],\n a = !1;\n function f() {\n if (n) {\n var e = t.gc();\n if (e.oi && !a) {\n a = !0;\n for (var i = 0; i < s.length; ++i) s[i](e);\n (s = []), (a = !1);\n }\n }\n }\n i.extend(this, {\n disableTcfIntegration: function () {\n (n = !1), (s = []);\n },\n Xi: function (n) {\n n.remove(o.it), n.remove(o.tt), n.remove(o.et);\n },\n zi: function () {\n n && u.Nn && (e || ((e = !0), t.mc(f)));\n },\n Ai: function (i) {\n var r = function (n) {\n i(n);\n };\n if (n && u.Nn) {\n var o = t.gc();\n o.oi ? r(o) : s.push(r), e || ((e = !0), t.mc(f));\n } else r({ oi: !0, pi: !0, gi: !1, mi: {} });\n },\n }),\n (n = !0);\n };\n },\n function (n, t, e) {\n "use strict";\n var i =\n (this && this.yc) ||\n (Object.create\n ? function (n, t, e, i) {\n i === undefined && (i = e);\n var r = Object.getOwnPropertyDescriptor(t, e);\n (r && !("get" in r ? !t.v : r.bc || r.Sc)) ||\n (r = {\n l: !0,\n get: function () {\n return t[e];\n },\n }),\n Object.defineProperty(n, i, r);\n }\n : function (n, t, e, i) {\n i === undefined && (i = e), (n[i] = t[e]);\n }),\n r =\n (this && this.wc) ||\n function (n, t) {\n for (var e in n) "default" === e || Object.prototype.hasOwnProperty.call(t, e) || i(t, n, e);\n };\n Object.defineProperty(t, "v", { value: !0 }), (t.pc = void 0);\n var o = e(30),\n u = e(97),\n s = e(98);\n r(e(99), t);\n var a = { oi: !0, pi: !0, gi: !1, mi: {} },\n f = (function () {\n function n() {}\n return (\n (n.prototype.gc = function () {\n return this.Ec(), this.Ic ? this.Ic.fi() : a;\n }),\n (n.prototype.mc = function (n) {\n this.Ec(), this.Ic && this.Ic.li(n);\n }),\n (n.prototype.Pc = function () {\n return null != this.Ic;\n }),\n (n.prototype.Ec = function () {\n null == this.Ic &&\n ((0, u.Ac)()\n ? (this.Ic = new u.Cc((0, u.Lc)(), (0, o.ei)() ? (0, o.ti)() : null))\n : (0, s.Dc)()\n ? (this.Ic = new s.Nc((0, s.Tc)(), (0, o.ei)() ? (0, o.ti)() : null))\n : (0, o.ei)() && (this.Ic = new o.ii((0, o.ti)())));\n }),\n n\n );\n })();\n t.pc = f;\n },\n function (n, t, e) {\n "use strict";\n Object.defineProperty(t, "v", { value: !0 }), (t.Lc = t.Ac = t.Cc = void 0);\n var i = e(31),\n r = e(30),\n o = (function () {\n function n(n, t) {\n void 0 === t && (t = null), (this.ri = { oi: !1 }), (this.ui = []), (this.si = !1), (this.Oc = -1), (this.kc = null), (this.Rc = !1), (this.Mc = !1), (this.Uc = n), (this.ai = t);\n }\n return (\n (n.prototype.fi = function () {\n return this.ci(), this.ri;\n }),\n (n.prototype.li = function (n) {\n this.ui.indexOf(n) > -1 || (this.ui.push(n), this.ci());\n }),\n (n.prototype.ci = function () {\n var n = this;\n if (!this.si) {\n this.si = !0;\n var t = +new Date(),\n e = -1,\n r = function (r) {\n if (!n.kc) {\n (n.Oc = r.xc), (n.ri = { oi: !1 }), -1 == e && (e = +new Date() - t);\n try {\n if ("sectionChange" == r.eventName || ("loaded" == r.pingData.cmpStatus && "visible" != r.pingData.cmpDisplayStatus)) {\n var o = n.Uc("getGPPData"),\n u = n.Uc("getSection", null, "tcfeuv2");\n if (\n !o ||\n !u ||\n -1 == r.pingData.supportedAPIs.indexOf("tcfeuv2") ||\n -1 == o.applicableSections ||\n 0 == o.applicableSections ||\n (o.applicableSections instanceof Array && -1 != o.applicableSections.indexOf(-1))\n )\n return void (n.ai ? ((n.Mc = !0), n.Wc(n.ai)) : (n.ri = (0, i.yi)({ cs_cmp_id: r.pingData.cmpId, cs_cmp_rt: e, cs_cmp_av: r.pingData.gppVersion, gpp_sid: 2 })));\n (n.ri = (0, i.di)(u, { cs_cmp_id: r.pingData.cmpId, cs_cmp_sv: u.cmpVersion, cs_cmp_rt: e, cs_cmp_av: r.pingData.gppVersion, gpp_sid: 2 })), n.ri.oi && n.vi();\n }\n } catch (s) {\n (n.Rc = !0), n.Fc();\n }\n }\n };\n try {\n r(this.Uc("addEventListener", r));\n } catch (o) {\n (this.Rc = !0), this.Fc();\n }\n }\n }),\n (n.prototype.vi = function () {\n for (var n = 0, t = this.ui; n < t.length; n++) {\n (0, t[n])();\n }\n }),\n (n.prototype.removeEventListener = function () {\n try {\n this.Uc("removeEventListener", null, this.Oc);\n } catch (n) {}\n }),\n (n.prototype.Fc = function () {\n this.removeEventListener(), this.ai ? this.Wc(this.ai) : ((this.ri = { oi: !0, pi: !0, gi: !1, mi: { cs_cmp_ie: 3 } }), this.vi());\n }),\n (n.prototype.Wc = function (n) {\n var t = this;\n if (!this.kc) {\n this.removeEventListener();\n var e = (this.kc = new r.ii(n));\n e.li(function () {\n (t.ri = e.fi()), t.ri.oi && (t.Rc ? (t.ri.mi.cs_cmp_ie = 1) : t.Mc && (t.ri.mi.cs_cmp_ie = 2), t.vi());\n });\n }\n }),\n n\n );\n })();\n (t.Cc = o),\n (t.Ac = function () {\n if ("function" != typeof __gpp) return !1;\n var n = __gpp("ping");\n return n && "1.0" == n.gppVersion;\n }),\n (t.Lc = function () {\n return __gpp;\n });\n },\n function (n, t, e) {\n "use strict";\n Object.defineProperty(t, "v", { value: !0 }), (t.Tc = t.Dc = t.Nc = void 0);\n var i = e(31),\n r = e(30),\n o = (function () {\n function n(n, t) {\n void 0 === t && (t = null), (this.ri = { oi: !1 }), (this.ui = []), (this.si = !1), (this.Oc = -1), (this.kc = null), (this.Rc = !1), (this.Mc = !1), (this.Uc = n), (this.ai = t);\n }\n return (\n (n.prototype.fi = function () {\n return this.ci(), this.ri;\n }),\n (n.prototype.li = function (n) {\n this.ui.indexOf(n) > -1 || (this.ui.push(n), this.ci());\n }),\n (n.prototype.ci = function () {\n var n = this;\n if (!this.si) {\n this.si = !0;\n var t = +new Date(),\n e = -1;\n try {\n this.Uc("addEventListener", function (r) {\n if (!n.kc) {\n (n.Oc = r.xc), (n.ri = { oi: !1 }), -1 == e && (e = +new Date() - t);\n try {\n if ("signalStatus" != r.eventName || "ready" != r.data) return;\n if (\n !r.pingData.parsedSections.tcfeuv2 ||\n -1 == r.pingData.applicableSections ||\n 0 == r.pingData.applicableSections ||\n (r.pingData.applicableSections instanceof Array && -1 != r.pingData.applicableSections.indexOf(-1))\n )\n return void (n.ai ? ((n.Mc = !0), n.Wc(n.ai)) : (n.ri = (0, i.yi)({ cs_cmp_id: r.pingData.cmpId, cs_cmp_rt: e, gpp_sid: 2, cs_cmp_av: r.pingData.gppVersion })));\n (n.ri = (0, i.di)(r.pingData.parsedSections.tcfeuv2, {\n cs_cmp_id: r.pingData.cmpId,\n cs_cmp_sv: r.pingData.parsedSections.tcfeuv2.cmpVersion,\n cs_cmp_rt: e,\n cs_cmp_av: r.pingData.gppVersion,\n gpp_sid: 2,\n })),\n n.ri.oi && n.vi();\n } catch (o) {\n (n.Rc = !0), n.Fc();\n }\n }\n });\n } catch (r) {\n (this.Rc = !0), this.Fc();\n }\n }\n }),\n (n.prototype.vi = function () {\n for (var n = 0, t = this.ui; n < t.length; n++) {\n (0, t[n])();\n }\n }),\n (n.prototype.Fc = function () {\n this.removeEventListener(), this.ai ? this.Wc(this.ai) : ((this.ri = { oi: !0, pi: !0, gi: !1, mi: { cs_cmp_ie: 3 } }), this.vi());\n }),\n (n.prototype.removeEventListener = function () {\n try {\n this.Uc("removeEventListener", function () {}, this.Oc);\n } catch (n) {}\n }),\n (n.prototype.Wc = function (n) {\n var t = this;\n if (!this.kc) {\n this.removeEventListener();\n var e = (this.kc = new r.ii(n));\n e.li(function () {\n (t.ri = e.fi()), t.ri.oi && (t.Rc ? (t.ri.mi.cs_cmp_ie = 1) : t.Mc && (t.ri.mi.cs_cmp_ie = 2)), t.vi();\n });\n }\n }),\n n\n );\n })();\n (t.Nc = o),\n (t.Dc = function () {\n return "function" == typeof __gpp;\n }),\n (t.Tc = function () {\n return __gpp;\n });\n },\n function (n, t, e) {\n "use strict";\n Object.defineProperty(t, "v", { value: !0 });\n },\n function (n, t, e) {\n var i = e(0),\n r = e(1),\n o = e(101);\n n.exports = function () {\n var n = !1,\n t = !0,\n e = !1,\n u = !1;\n function s(n) {\n try {\n if ("undefined" == typeof document || "undefined" == typeof document.cookie) return;\n var t = o.Vc(document.cookie, "_scor_uid");\n t || (t = r.uuid());\n var e = new Date(new Date().getTime() + 33696e6);\n o.Bc(document, "_scor_uid", t, e), n.setLabel("cs_fpcu", t);\n } catch (i) {}\n }\n i.extend(this, {\n enableFirstPartyCookie: function () {\n n = !0;\n },\n disableTcfIntegration: function () {\n t = !1;\n },\n sc: function (i, r, a) {\n (t && !i.gi) || !t\n ? n &&\n (function (n) {\n for (var t = n.getPublisherConfigurations(), e = n.getPartnerConfigurations(), i = t.concat(e), r = 0; r < i.length; ++r) {\n var o = i[r].getPersistentLabels();\n if ("1" == o.cs_ucfr || 1 == o.cs_ucfr) return !0;\n }\n return !1;\n })(r)\n ? e || s(a)\n : (e = !0)\n : n && i.pi\n ? e || s(a)\n : (!(function (n) {\n try {\n if ("undefined" == typeof document || "undefined" == typeof document.cookie) return;\n o.Vc(document.cookie, "_scor_uid") && (o.qc(document, "_scor_uid"), (u = !0));\n } catch (t) {}\n })(),\n (e = !0)),\n u && a.setLabel("cs_fpcd", "1");\n },\n });\n };\n },\n function (n, t) {\n function e(n, t, e, i) {\n n.cookie = t + "=" + e + "; expires=" + i.toUTCString() + "; path=/";\n }\n (t.Vc = function (n, t) {\n for (var e = 0, i = n.split("; "); e < i.length; ++e) {\n var r = i[e];\n if (r && 0 == r.indexOf(t)) return r.substring(t.length + 1);\n }\n }),\n (t.Bc = e),\n (t.qc = function (n, t) {\n e(n, t, "", new Date(0));\n });\n },\n function (n, t, e) {\n var i = e(0),\n r = e(15),\n o = e(103),\n u = e(2).R,\n s = e(2).M,\n a = e(16),\n f = e(127),\n c = e(32),\n l = e(128),\n d = e(52),\n v = e(129),\n _ = e(130);\n function h(n) {\n var t,\n e = this;\n i.extend(e, {\n configuration: null,\n extendedAnalytics: null,\n createPlaybackSession: function () {\n t.jc().Iu().Eu("createPlaybackSession");\n var n = t.jc().Tu().Nu();\n n != s.IDLE && (t.jc().Iu().Pu("Ending the current Clip. It was in state:", r.Mt(n)), e.notifyEnd()), t.jc().fo().Oo() && t.Fu();\n },\n addListener: function (n) {\n t.addListener(n);\n },\n removeListener: function (n) {\n t.removeListener(n);\n },\n addMeasurementListener: function (n) {\n t.addMeasurementListener(n);\n },\n removeMeasurementListener: function (n) {\n t.removeMeasurementListener(n);\n },\n setDvrWindowLength: function (n) {\n t.jc().fo().ao().setDvrWindowLength(n), t.jc().fo().ao().ta(!0);\n },\n startFromDvrWindowOffset: function (n) {\n t.jc().fo().startFromDvrWindowOffset(n), t.jc().fo().ao().ta(!0);\n },\n setMediaPlayerName: function (n) {\n t.jc().fo().setMediaPlayerName(n);\n },\n setMediaPlayerVersion: function (n) {\n t.jc().fo().setMediaPlayerVersion(n);\n },\n setImplementationId: function (n) {\n t.jc().fo().setImplementationId(n);\n },\n setProjectId: function (n) {\n t.setProjectId(n + "");\n },\n startFromSegment: function (n) {\n t.jc().Iu().Eu("startFromSegment", n), t.jc().fo().startFromSegment(n);\n },\n startFromPosition: function (n) {\n t.jc().Iu().Eu("startFromPosition", n), t.jc().fo().startFromPosition(n);\n },\n loopPlaybackSession: function () {\n t.jc().Iu().Eu("loopPlaybackSession"), t.jc().fo().loopPlaybackSession();\n },\n setMetadata: function (n) {\n t.jc().fo().wu(n);\n },\n getPlaybackSessionId: function () {\n return t.jc().fo().hu();\n },\n notifyPlay: function () {\n t.jc().Iu().Eu("notifyPlay");\n var n = new a(u.PLAY);\n t.Ou(n);\n },\n notifyPause: function () {\n t.jc().Iu().Eu("notifyPause");\n var n = new a(u.PAUSE);\n t.Ou(n);\n },\n notifyEnd: function () {\n t.jc().Iu().Eu("notifyEnd");\n var n = new a(u.END);\n t.Ou(n);\n },\n notifyBufferStart: function () {\n t.jc().Iu().Eu("notifyBufferStart");\n var n = new a(u.BUFFER);\n t.Ou(n);\n },\n notifyBufferStop: function () {\n t.jc().Iu().Eu("notifyBufferStop");\n var n = new a(u.BUFFER_STOP);\n t.Ou(n);\n },\n notifySeekStart: function () {\n t.jc().Iu().Eu("notifySeekStart");\n var n = new a(u.SEEK_START);\n t.Ou(n);\n },\n notifyChangePlaybackRate: function (n) {\n t.jc().Iu().Eu("notifyChangePlaybackRate");\n var e = Math.floor(100 * n),\n i = new a(u.PLAYBACK_RATE);\n (i.Vt.ns_st_rt = e + ""), t.Xr(i);\n },\n }),\n (t = new o(n)),\n (e.configuration = t.Gc),\n (e.extendedAnalytics = new f(t.jc())),\n t.jc().Iu().log("New StreamingAnalytics instance with configuration", n);\n }\n (h.PlayerEvents = u), (h.InternalStates = s), (h.WindowState = _), (h.ContentMetadata = c), (h.StackedContentMetadata = l), (h.AdvertisementMetadata = d), (h.StackedAdvertisementMetadata = v), (n.exports = h);\n },\n function (n, t, e) {\n var i = e(104),\n r = e(105),\n o = e(106),\n u = e(107),\n s = e(108),\n a = e(109),\n f = e(110),\n c = e(111),\n l = e(112),\n d = e(113),\n v = e(114),\n _ = e(115),\n h = e(116),\n p = e(15),\n g = e(117),\n m = e(0),\n y = e(22),\n b = e(28),\n S = e(1),\n w = e(118),\n E = e(119),\n I = e(16),\n P = e(49),\n A = e(2).M,\n C = e(2).R,\n L = e(2).U,\n D = e(47),\n N = e(48),\n T = e(123),\n O = e(124),\n k = e(125),\n R = e(4),\n M = e(33),\n U = e(3).kn,\n x = e(19),\n W = e(126);\n function F(n) {\n var t,\n e,\n F,\n V,\n B,\n q,\n j,\n G,\n H,\n K,\n J,\n Y,\n z,\n X,\n Q,\n $,\n Z,\n nn,\n tn,\n en,\n rn,\n on,\n un,\n sn,\n an,\n fn,\n cn,\n ln,\n dn,\n vn,\n _n = this;\n function hn(n) {\n var e = t.Tu().Nu();\n if (e == A.IDLE || e == A.PLAYBACK_NOT_STARTED || e == A.BUFFERING_BEFORE_PLAYBACK || e == A.SEEKING_BEFORE_PLAYBACK) {\n if (n == C.PLAY) return !0;\n } else if (e == A.PLAYING) {\n if (n == C.END || n == C.AD_SKIP || n == C.SEEK_START || n == C.PAUSE) return !0;\n } else if (e == A.PAUSED || e == A.BUFFERING_DURING_PAUSE || e == A.SEEKING_DURING_PLAYBACK || e == A.SEEKING_DURING_BUFFERING || e == A.SEEKING_DURING_PAUSE) {\n if (n == C.END || n == C.AD_SKIP || n == C.PLAY) return !0;\n } else if (e == A.BUFFERING_DURING_PLAYBACK) {\n if (n == C.PAUSE_ON_BUFFERING || n == C.END || n == C.AD_SKIP || n == C.SEEK_START || n == C.PAUSE || n == C.PLAY) return !0;\n } else if (e == A.BUFFERING_DURING_SEEKING) {\n if (n == C.END || n == C.AD_SKIP || n == C.PAUSE || n == C.PLAY) return !0;\n } else if (e == A.PAUSED_DURING_BUFFERING && (n == C.END || n == C.AD_SKIP || n == C.BUFFER_STOP || n == C.PLAY)) return !0;\n return !1;\n }\n function pn(n) {\n (vn = n) == b.Ze.Be\n ? (_n.Hc("1"), t.Iu().Pu("System clock jump detected", "to the far past"))\n : vn == b.Ze.qe\n ? (_n.Hc("3"), t.Iu().Pu("System clock jump detected", "to the future"))\n : (_n.Hc("2"), t.Iu().Pu("System clock jump detected", "to the near past"));\n }\n function gn() {\n _n.Ou(new I(C.END));\n }\n function mn() {\n F = M.configuration.cr();\n }\n function yn() {\n F = M.configuration.cr();\n }\n m.extend(_n, {\n Gc: null,\n Hc: function (n) {\n -1 == ln.indexOf(n) && ln.push(n);\n },\n io: function () {\n var n = new I(C.HEARTBEAT);\n n.setLabel("ns_st_hc", t.Kc().ro());\n var e = t.fo(),\n i = e.ao(),\n r = isNaN(en) ? tn : en;\n (en = n.Bt), b.ni().Qe(n.Bt);\n var o = !1;\n vn && ((vn = null), (o = !0), (n.Bt = r));\n var u = i.Bo(),\n s = i.gs(),\n a = i.Mo(),\n f = i.xo(),\n c = i.Ko(),\n l = i.na();\n i.ea() ? e.Ho(A.PLAYING, null, n.Bt) : e.ko(A.PLAYING, null, n.Bt);\n var d = i.Mo();\n i.ls(n);\n var v = _n.zn(C.HEARTBEAT, n);\n t.fo().ao().Xu(v.Jc),\n t.Yc().dispatchEvent(v),\n i.Ro(u),\n i.Uo(s),\n i.jo(a),\n i.Go(f),\n i.Zo(c),\n i.nu(l),\n o && (i.Ro(d), i.Uo(en), e.Do(en - parseInt(v.Jc.ns_st_dpt)), i.Do(en - parseInt(v.Jc.ns_st_dpt)), i.ps(en - parseInt(v.Jc.ns_st_det)));\n },\n zn: function (n, i) {\n var r = i.Bt,\n o = t.fo(),\n u = {};\n (u.ns_ts = r + ""),\n (u.ns_st_ev = C.toString(n)),\n (u.ns_st_mp = "js_api"),\n (u.ns_st_mv = "7.8.0+2310050509"),\n (u.ns_st_ub = "0"),\n (u.ns_st_br = "0"),\n (u.ns_st_pn = "1"),\n (u.ns_st_tp = "0"),\n (u.ns_st_it = L.toString(L.T)),\n (u.ns_st_sv = "7.8.0+2310050509"),\n (u.ns_st_smv = "6.4"),\n (u.ns_type = "hidden"),\n (u.ns_st_ec = t.Yc().Yi() + ""),\n (u.ns_st_cfg = e.zc()),\n (u.ns_st_hd = t.Kc().lo(r)),\n (u.ns_st_po = o.ao().Mo() + ""),\n ln.length > 0 && (u.ns_ap_ie = ln.join(";")),\n o.zn(u, r),\n o.ao().zn(u, r, n == C.HEARTBEAT),\n m.extend(u, i.Vt),\n m.extend(u, cn),\n (function () {\n for (var n = m.h(fn), t = 0; t < n.length; ++t) n[t](u);\n })();\n var s = {};\n m.extend(s, u), m.extend(s, e.getLabels());\n var a = new x();\n a.Zt(!1);\n var f = e.Xc(),\n c = e.Qc,\n l = o.ao(),\n d = l.getStacks();\n if (c.length > 0)\n for (var v = 0; v < c.length; ++v) {\n var _ = c[v];\n -1 != F.indexOf(_) && a.addIncludedPublisher(_);\n }\n else\n for (v = 0; v < F.length; ++v) {\n var h = F[v];\n a.addIncludedPublisher(h);\n }\n var p = [];\n for (var g in f) {\n var y = f[g];\n if (!(c.length > 0 && -1 == c.indexOf(g))) {\n var b = {};\n m.extend(b, s), m.extend(b, y.getLabels()), m.extend(b, l.getLabels()), d[g] && m.extend(b, d[g]), m.extend(b, i.Ft), a.addPublisherLabels(g, b), p.push(g);\n }\n }\n var S = [];\n for (var w in d) {\n var E = d[w];\n if (-1 == p.indexOf(w)) {\n var I = {};\n m.extend(I, E), m.extend(I, i.Ft), a.addPublisherLabels(w, I), S.push(w);\n }\n }\n return a.Qt(S), m.extend(s, l.getLabels()), m.extend(s, i.Ft), a.addLabels(s), new W(n, a, u);\n },\n Ou: function (n) {\n var i = t.Tu().Nu();\n if (e.Uu) {\n if (sn && i == A.BUFFERING_BEFORE_PLAYBACK && n.Wt == C.BUFFER_STOP) {\n t.Iu().Pu("Resume to PLAY from state:", p.Mt(i));\n var r = new I(C.PLAY);\n return (r.Bt = n.Bt), (r.Vt.ns_st_ae = "1"), _n.Ou(r), void (sn = !1);\n }\n sn && (sn = !1);\n }\n var o = t.Tu().$c(n.Wt);\n if (null != o && o != i) {\n dn && p.Ut(i) && !p.Ut(o) ? U.Pn(gn) : dn && !p.Ut(i) && p.Ut(o) && U.An(gn);\n var u = t.fo(),\n s = u.ao(),\n a = isNaN(en) ? tn : en;\n (en = n.Bt), b.ni().Qe(n.Bt);\n var f = !1;\n vn && ((vn = null), (f = !0), (n.Bt = a)),\n i == A.IDLE && s.Jr("ns_st_pn") && u.startFromSegment(parseInt(s.Yr("ns_st_pn"))),\n s.ea() ? u.Ho(i, o, n.Bt) : u.ko(i, o, n.Bt),\n i == A.IDLE && u.tu(),\n (function (n) {\n var e = t.Tu().Nu();\n n.Wt == C.AD_SKIP && !n.Vt.hasOwnProperty("ns_st_ui") && hn(n.Wt) ? (n.Vt.ns_st_ui = "skip") : n.Wt == C.SEEK_START && !n.Vt.hasOwnProperty("ns_st_ui") && hn(n.Wt) && (n.Vt.ns_st_ui = "seek");\n var i = n.Wt;\n e == A.IDLE\n ? i == C.BUFFER\n ? V.Zc(n)\n : i == C.SEEK_START\n ? V.nl(n)\n : i == C.PLAY && V.tl(n)\n : e == A.PLAYBACK_NOT_STARTED\n ? i == C.END || i == C.AD_SKIP\n ? q.el(n)\n : i == C.SEEK_START\n ? q.nl(n)\n : i == C.PLAY\n ? q.tl(n)\n : i == C.BUFFER && q.Zc(n)\n : e == A.PLAYING\n ? i == C.END || i == C.AD_SKIP\n ? j.el(n)\n : i == C.BUFFER\n ? j.Zc(n)\n : i == C.SEEK_START\n ? j.nl(n)\n : i == C.PAUSE && j.il(n)\n : e == A.PAUSED\n ? i == C.END || i == C.AD_SKIP\n ? B.el(n)\n : i == C.PLAY\n ? B.tl(n)\n : i == C.BUFFER\n ? $.rl(n)\n : i == C.SEEK_START && $.ol(n)\n : e == A.BUFFERING_BEFORE_PLAYBACK\n ? i == C.END || i == C.AD_SKIP\n ? G.el(n)\n : i == C.BUFFER_STOP\n ? G.ul(n)\n : i == C.SEEK_START\n ? G.nl(n)\n : i == C.PAUSE\n ? G.il(n)\n : i == C.PLAY && G.tl(n)\n : e == A.BUFFERING_DURING_PLAYBACK\n ? i == C.PAUSE_ON_BUFFERING\n ? H.sl(n)\n : i == C.BUFFER_STOP\n ? $.al(n)\n : i == C.END || i == C.AD_SKIP\n ? H.el(n)\n : i == C.SEEK_START\n ? H.nl(n)\n : i == C.PAUSE\n ? H.il(n)\n : i == C.PLAY && $.al(n)\n : e == A.BUFFERING_DURING_SEEKING\n ? i == C.END || i == C.AD_SKIP\n ? K.el(n)\n : i == C.PAUSE\n ? K.il(n)\n : i == C.PLAY\n ? K.tl(n)\n : i == C.BUFFER_STOP && $.fl(n)\n : e == A.BUFFERING_DURING_PAUSE\n ? i == C.END || i == C.AD_SKIP\n ? J.cl(n)\n : i == C.PAUSE\n ? J.il(n)\n : i == C.PLAY\n ? J.tl(n)\n : i == C.SEEK_START\n ? $.ol(n)\n : i == C.BUFFER_STOP && $.fl(n)\n : e == A.SEEKING_BEFORE_PLAYBACK\n ? i == C.END || i == C.AD_SKIP\n ? z.el(n)\n : i == C.PAUSE\n ? z.il(n)\n : i == C.PLAY\n ? z.tl(n)\n : i == C.BUFFER && $.rl(n)\n : e == A.SEEKING_DURING_PLAYBACK\n ? i == C.END || i == C.AD_SKIP\n ? Q.el(n)\n : i == C.PLAY\n ? Q.tl(n)\n : i == C.BUFFER\n ? $.rl(n)\n : i == C.PAUSE && $.ll(n)\n : e == A.SEEKING_DURING_BUFFERING\n ? i == C.PAUSE\n ? X.il(n)\n : i == C.BUFFER\n ? $.rl(n)\n : i == C.PLAY\n ? $.dl(n)\n : i == C.END || i == C.AD_SKIP\n ? $.vl(n)\n : i == C.BUFFER_STOP && $._l(n)\n : e == A.PAUSED_DURING_BUFFERING\n ? i == C.END || i == C.AD_SKIP\n ? Y.el(n)\n : i == C.BUFFER_STOP\n ? Y.hl(n)\n : i == C.SEEK_START\n ? Y.nl(n)\n : i == C.PAUSE\n ? Y.il(n)\n : i == C.PLAY && Y.hl(n)\n : e == A.SEEKING_DURING_PAUSE && (i == C.BUFFER ? $.rl(n) : i == C.PLAY ? $.dl(n) : i == C.PAUSE ? $.ll(n) : i == C.END || i == C.AD_SKIP ? $.vl(n) : i == C.BUFFER_STOP && $._l(n)),\n hn(i) && t.fo().vu(!0);\n })(n),\n t.Tu().Ou(n.Wt, n.Bt),\n o == A.IDLE ? b.ni().Xe(pn) : i == A.IDLE && b.ni().ze(pn),\n f &&\n (s.Ro(s.Mo()),\n s.Uo(en),\n o != A.IDLE && o != A.PLAYBACK_NOT_STARTED && o != A.SEEKING_BEFORE_PLAYBACK && o != A.BUFFERING_BEFORE_PLAYBACK && s.ps(en),\n (o != A.BUFFERING_BEFORE_PLAYBACK && o != A.BUFFERING_DURING_PAUSE && o != A.BUFFERING_DURING_PLAYBACK && o != A.BUFFERING_DURING_SEEKING && o != A.PAUSED_DURING_BUFFERING) || (u.Co(en), s.Co(en)),\n o == A.PLAYING && (u.Do(en), s.Do(en)),\n (o != A.SEEKING_BEFORE_PLAYBACK && o != A.SEEKING_DURING_BUFFERING && o != A.SEEKING_DURING_PAUSE && o != A.SEEKING_DURING_PLAYBACK && o != A.BUFFERING_DURING_SEEKING) || s.As(en)),\n t.Iu().log("Transition from", p.Mt(i), "to", p.Mt(o), "due to event:", C.toString(n.Wt));\n for (var c = 0, l = an.length; c < l; c++) an[c](i, o, n.Vt);\n } else t.Iu().Pu("Ignored event:", C.toString(n.Wt), "during state", p.Mt(i), n.Vt);\n },\n Xr: function (n) {\n var e = n.Wt,\n i = n.Vt,\n r = t.Tu().Nu();\n if ((e != C.LOAD && e != C.ENGAGE) || r == A.IDLE) {\n var o,\n u,\n s,\n a,\n f = !0,\n c = !1,\n l = !0;\n if ((e == C.ERROR && null == i.ns_st_er && (i.ns_st_er = R.Mn), e == C.TRANSFER && null == i.ns_st_rp && (i.ns_st_rp = R.Mn), e == C.PLAYBACK_RATE)) {\n var d = parseInt(i.ns_st_rt);\n (0 == d || isNaN(d)) && ((l = !1), _n.Hc("6"), (i.ns_st_rt = t.fo().ao().Qs() + ""));\n }\n if (e == C.VOLUME) {\n var v = parseInt(i.ns_st_vo);\n (v < 0 || isNaN(v)) && ((l = !1), _n.Hc("7"), (i.ns_st_vo = cn.ns_st_vo));\n }\n switch (e) {\n case C.BIT_RATE:\n (o = "ns_st_br"), (u = "ns_st_pbr");\n break;\n case C.PLAYBACK_RATE:\n (o = "ns_st_rt"), (u = "ns_st_prt");\n break;\n case C.VOLUME:\n (o = "ns_st_vo"), (u = "ns_st_pvo");\n break;\n case C.WINDOW_STATE:\n (o = "ns_st_ws"), (u = "ns_st_pws");\n break;\n case C.AUDIO:\n (o = "ns_st_at"), (u = "ns_st_pat");\n break;\n case C.VIDEO:\n (o = "ns_st_vt"), (u = "ns_st_pvt");\n break;\n case C.SUBS:\n (o = "ns_st_tt"), (u = "ns_st_ptt");\n break;\n case C.CDN:\n (o = "ns_st_cdn"), (u = "ns_st_pcdn");\n break;\n default:\n f = !1;\n }\n var _ = t.fo(),\n h = _.ao();\n if (f && o in i)\n switch (((a = i[o]), e)) {\n case C.BIT_RATE:\n case C.VOLUME:\n case C.WINDOW_STATE:\n o in cn && ((s = cn[o]), (i[u] = s), (c = a == s + "")), (cn[o] = i[o]);\n break;\n case C.AUDIO:\n case C.VIDEO:\n case C.SUBS:\n case C.CDN:\n h.Yu(o) && ((s = h.Ju(o)), (i[u] = s), (c = a == s + "")), h.Mu(o, i[o]);\n break;\n case C.PLAYBACK_RATE:\n (s = h.Qs()), (i[u] = s + "");\n }\n if ((f && r != A.PLAYING && r != A.BUFFERING_DURING_PLAYBACK) || (f && c && l))\n return e == C.PLAYBACK_RATE && h.$s(parseInt(i.ns_st_rt)), void t.Iu().Pu("No measurement send for the pseudo-event:", C.toString(e), "during state", p.Mt(r), i);\n var g = isNaN(en) ? tn : en;\n (en = n.Bt), b.ni().Qe(n.Bt);\n var m = !1;\n vn && ((vn = null), (m = !0), (n.Bt = g)), h.ea() ? _.Ho(r, null, n.Bt) : _.ko(r, null, n.Bt), r == A.IDLE && _.tu();\n var y = h.Mo();\n _.ou(),\n r != A.IDLE && r != A.PLAYBACK_NOT_STARTED && r != A.SEEKING_BEFORE_PLAYBACK && r != A.BUFFERING_BEFORE_PLAYBACK && (h._s(n.Bt), h.ps(n.Bt)),\n r == A.PLAYING && (_.wo(n.Bt), _.Do(n.Bt), h.wo(n.Bt), h.Do(n.Bt), h.Zs(y), h.cs(y), h.ls(), h.as(y), t.Kc().pause(), t.Kc().resume()),\n (r != A.BUFFERING_BEFORE_PLAYBACK && r != A.BUFFERING_DURING_PAUSE && r != A.BUFFERING_DURING_PLAYBACK && r != A.BUFFERING_DURING_SEEKING) || (_.Io(n.Bt), _.Co(n.Bt), h.Io(n.Bt), h.Co(n.Bt));\n var S = _n.zn(e, n);\n h.Su(S.Jc),\n h.Xu(S.Jc),\n _.Su(S.Jc),\n t.Yc().dispatchEvent(S),\n e == C.PLAYBACK_RATE && h.$s(parseInt(i.ns_st_rt)),\n m &&\n (h.Ro(y),\n h.Uo(en),\n r == A.PLAYING && (_.Do(en), h.Do(en)),\n r != A.IDLE && r != A.PLAYBACK_NOT_STARTED && r != A.SEEKING_BEFORE_PLAYBACK && r != A.BUFFERING_BEFORE_PLAYBACK && h.ps(en),\n (r != A.BUFFERING_BEFORE_PLAYBACK && r != A.BUFFERING_DURING_PAUSE && r != A.BUFFERING_DURING_PLAYBACK && r != A.BUFFERING_DURING_SEEKING && r != A.PAUSED_DURING_BUFFERING) || (_.Co(en), h.Co(en)),\n (r != A.SEEKING_BEFORE_PLAYBACK && r != A.SEEKING_DURING_BUFFERING && r != A.SEEKING_DURING_PAUSE && r != A.SEEKING_DURING_PLAYBACK && r != A.BUFFERING_DURING_SEEKING) || h.As(en));\n } else t.Iu().Pu("Ignored pseudo-event:", C.toString(e), "during state", p.Mt(r), i);\n },\n addListener: function (n) {\n an.push(n);\n },\n removeListener: function (n) {\n an.splice(y.indexOf(n, an), 1);\n },\n addMeasurementListener: function (n) {\n S.D(n) && fn.push(n);\n },\n removeMeasurementListener: function (n) {\n var t = fn.indexOf(n);\n -1 != t && fn.splice(t, 1);\n },\n $r: function () {\n return U;\n },\n pl: function () {\n return Z;\n },\n gl: function (n) {\n Z = n;\n },\n ml: function () {\n return nn;\n },\n setLoadTimeOffset: function (n) {\n nn = n;\n },\n yl: function () {\n return tn;\n },\n bl: function () {\n return on;\n },\n Sl: function () {\n return dn;\n },\n wl: function (n) {\n _n.El(),\n (un = _n.$r().setTimeout(function () {\n var n = new I(C.PAUSE_ON_BUFFERING);\n _n.Ou(n);\n }, rn));\n },\n El: function () {\n null != un && (_n.$r().clearTimeout(un), (un = null));\n },\n xu: function () {\n sn = !0;\n },\n jc: function () {\n return t;\n },\n Fu: function (n) {\n var e = t.fo();\n t.Il(new P(t)), t.fo().cu(mn), P.Fu(t, e, n), (ln = []);\n },\n Pl: function () {\n t.Kc().reset();\n },\n setProjectId: function (n) {\n cn.cs_proid = n;\n },\n }),\n (t = new g(_n)),\n (e = new E(n || {})),\n (_n.Gc = new w(e)),\n t.Al(e),\n t.Cl(M),\n t.Ll(new D(t)),\n t.Dl(new N(t)),\n t.Nl(new T(e, M)),\n t.Yc().Tl(yn),\n t.Ol(new k()),\n t.kl(new O("STA", t.Rl().configuration.Ir())),\n t.Il(new P(t)),\n t.fo().cu(mn),\n (F = []),\n (V = new i(t)),\n (B = new r(t)),\n (q = new o(t)),\n (j = new u(t)),\n (G = new s(t)),\n (H = new a(t)),\n (K = new f(t)),\n (J = new c(t)),\n (Y = new l(t)),\n (z = new d(t)),\n (X = new v(t)),\n (Q = new _(t)),\n ($ = new h(t)),\n (Z = !1),\n (nn = 0),\n (tn = S.N()),\n (on = !0),\n (ln = []),\n (an = []),\n (fn = []),\n ((cn = {}).ns_st_vo = "100"),\n (vn = null),\n (function (n) {\n (on = n.Ml), (rn = n.Ul), (dn = n.xl);\n })(e);\n }\n (F.Wl = 500), (F.Fl = !0), (F.Vl = !0), (n.exports = F);\n },\n function (n, t, e) {\n var i = e(0),\n r = e(2).R;\n n.exports = function (n) {\n i.extend(this, {\n Zc: function (t) {\n var e = n.fo(),\n i = e.ao(),\n r = t.Bt;\n e.ou(), e.fu(), i.ws() && i.Ns(i.Os()), e.Co(r), i.Co(r), i.ps(r);\n },\n nl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n r = i.Mo(),\n o = t.Bt;\n e.ou(), e.fu(), i.ws() && i.Ns(i.Os()), i.us(), i.Ss(!0), i.Es(!0), i.ks(r), i.As(o), i.ps(o);\n },\n tl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = i.Mo(),\n u = t.Bt;\n e.ou(),\n e.fu(),\n (i.Xs() || 0 == e.lu()) && (e.du(), i.bu(!1)),\n i.ws() && (i.Ns(i.Os()), i.xs(o), i.Ss(!1)),\n e._u(),\n i.Ps(!0),\n i.yu(!0),\n i.Vs(),\n (0 == i.Hs() || i.iu() <= i.Hs()) && (i.mu(i.iu()), i.Bs(), i.au(0), i.qs()),\n i._u(),\n i.bo(),\n e.Do(u),\n i.Do(u),\n i.ps(u),\n i.as(o),\n n.Qr().pl() || ((t.Vt.ns_st_lt = n.Qr().ml() + u - n.Qr().yl() + ""), n.Qr().gl(!0)),\n n.Kc().resume(),\n n.Bl().start();\n var s = n.Qr().zn(r.PLAY, t);\n i.Su(s.Jc), i.Xu(s.Jc), e.Su(s.Jc), n.Yc().dispatchEvent(s);\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(2).R;\n n.exports = function (n) {\n i.extend(this, {\n el: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = t.Bt;\n n.Qr().Pl(), n.Bl().stop(), i._s(o);\n var u = n.Qr().zn(r.END, t);\n i.Su(u.Jc), i.Xu(u.Jc), e.Su(u.Jc), n.Yc().dispatchEvent(u), i.ws() && i.Is() && (i.Ts(o - i.Cs()), i.Ss(!1)), i.Fs(), i.Ps(!1);\n },\n tl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = i.Mo(),\n u = t.Bt;\n e._u(), i.ws() && (i.Is() && (i.Ls(u), i.Es(!1)), i.xs(o), i.Ss(!1)), i.bo(), i._u(), e.Do(u), i.Do(u), i._s(u), i.ps(u), i.as(o), n.Kc().resume(), n.Bl().start();\n var s = n.Qr().zn(r.PLAY, t);\n i.Su(s.Jc), i.Xu(s.Jc), e.Su(s.Jc), n.Yc().dispatchEvent(s);\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(2).R;\n n.exports = function (n) {\n i.extend(this, {\n el: function (t) {\n var e = n.fo().ao(),\n i = t.Bt;\n e.ws() && e.Is() && (e.Ts(i - e.Cs()), e.Es(!1)), e._s(i), e.Fs(), e.Ps(!1);\n },\n nl: function (t) {\n var e = n.fo().ao(),\n i = e.Mo(),\n r = t.Bt;\n e.ws() ? e.As(r) : e.us(), e.ws() || (e.Ss(!0), e.Es(!0), e.ks(i), e.As(r));\n },\n tl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = i.Mo(),\n u = t.Bt;\n i.ws() && (i.xs(o), i.Ss(!1)),\n (i.Xs() || 0 == e.lu()) && (e.du(), i.bu(!1)),\n e._u(),\n i.Ps(!0),\n i.yu(!0),\n i.Vs(),\n (0 == i.Hs() || i.iu() <= i.Hs()) && (i.mu(i.iu()), i.Bs(), i.au(0), i.qs()),\n i._u(),\n i.bo(),\n e.Do(u),\n i.Do(u),\n i._s(u),\n i.ps(u),\n i.as(o),\n n.Qr().pl() || ((t.Vt.ns_st_lt = n.Qr().ml() + u - n.Qr().yl() + ""), n.Qr().gl(!0)),\n n.Kc().resume(),\n n.Bl().start();\n var s = n.Qr().zn(r.PLAY, t);\n i.Su(s.Jc), i.Xu(s.Jc), e.Su(s.Jc), n.Yc().dispatchEvent(s);\n },\n Zc: function (t) {\n var e = n.fo(),\n i = e.ao(),\n r = t.Bt;\n e.Co(r), i.Co(r);\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(2).R;\n n.exports = function (n) {\n i.extend(this, {\n el: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = i.Mo(),\n u = t.Bt;\n n.Qr().Pl(), n.Bl().stop(), e.wo(u), i.wo(u), i.Zs(o), i._s(u), i.cs(o), i.ls();\n var s = n.Qr().zn(r.END, t);\n i.Su(s.Jc), i.Xu(s.Jc), e.Su(s.Jc), n.Yc().dispatchEvent(s), i.Fs(), i.Ps(!1);\n },\n Zc: function (t) {\n var e = n.fo(),\n i = e.ao(),\n r = i.Mo(),\n o = t.Bt;\n n.Kc().pause(), n.Bl().stop(), e.wo(o), i.wo(o), i.Zs(r), i.cs(r), i.ls(), n.Qr().bl() && n.Qr().wl(t), i.Js(), e.Co(o), i.Co(o), i._s(o), i.ps(o);\n },\n nl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = i.Mo(),\n u = t.Bt;\n n.Kc().pause(), n.Bl().stop(), e.wo(u), i.wo(u), i.Zs(o), i.cs(o), i.ls(), i.us(), i.Ss(!0), i.Es(!0), i.ks(o), i.As(u), i._s(u), i.ps(u), e.So(), i.So();\n var s = n.Qr().zn(r.PAUSE, t);\n i.Su(s.Jc), i.Xu(s.Jc), e.Su(s.Jc), n.Yc().dispatchEvent(s);\n },\n il: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = i.Mo(),\n u = t.Bt;\n n.Kc().pause(), n.Bl().stop(), e.wo(u), i.wo(u), i.Zs(o), i.cs(o), i.ls(), i._s(u), i.ps(u), e.So(), i.So();\n var s = n.Qr().zn(r.PAUSE, t);\n i.Su(s.Jc), i.Xu(s.Jc), e.Su(s.Jc), n.Yc().dispatchEvent(s);\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(2).R;\n n.exports = function (n) {\n i.extend(this, {\n el: function (t) {\n var e = n.fo(),\n i = e.ao(),\n r = t.Bt;\n e.Io(r), i.Io(r), i.ws() && i.Is() && i.Ts(r - i.Cs()), i._s(r), i.Fs(), i.Ps(!1);\n },\n ul: function (t) {\n var e = n.fo(),\n i = e.ao(),\n r = t.Bt;\n e.Io(r), i.Io(r), i.ws() && i.Is() && (i.Ls(r), i.Es(!1));\n },\n nl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n r = i.Mo(),\n o = t.Bt;\n e.Io(o), i.Io(o), i.ws() ? i.Is() || (i.As(o), i.Es(!0)) : i.us(), i.ws() || (i.Ss(!0), i.Es(!0), i.ks(r), i.As(o));\n },\n il: function (t) {\n var e = n.fo(),\n i = e.ao(),\n r = t.Bt;\n e.Io(r), i.Io(r), i.ws() && i.Is() && (i.Ls(r), i.Es(!1));\n },\n tl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = i.Mo(),\n u = t.Bt;\n e.Io(u),\n i.Io(u),\n i.ws() && (i.Is() && (i.Ls(u), i.Es(!1)), i.xs(o), i.Ss(!1)),\n i.Ps(!0),\n i.yu(!0),\n (i.Xs() || 0 == e.lu()) && (e.du(), i.bu(!1)),\n e._u(),\n i.Ps(!0),\n i.Vs(),\n i.bo(),\n e.Do(u),\n i.Do(u),\n i._s(u),\n i.ps(u),\n i.as(o),\n (0 == i.Hs() || i.iu() <= i.Hs()) && (i.mu(i.iu()), i.Bs(), i.au(0), i.qs()),\n i._u(),\n n.Qr().pl() || ((t.Vt.ns_st_lt = n.Qr().ml() + u - n.Qr().yl() + ""), n.Qr().gl(!0)),\n n.Kc().resume(),\n n.Bl().start();\n var s = n.Qr().zn(r.PLAY, t);\n i.Su(s.Jc), i.Xu(s.Jc), e.Su(s.Jc), n.Yc().dispatchEvent(s);\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(2).R;\n n.exports = function (n) {\n i.extend(this, {\n sl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = t.Bt;\n n.Qr().El(), i._s(o), i.ps(o), e.Io(o), i.Io(o), e.So(), i.So();\n var u = n.Qr().zn(r.PAUSE, t);\n i.Su(u.Jc), i.Xu(u.Jc), e.Su(u.Jc), n.Yc().dispatchEvent(u), e.Co(o), i.Co(o);\n },\n el: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = t.Bt;\n n.Qr().El(), n.Qr().Pl(), n.Bl().stop(), e.Io(o), i.Io(o), i._s(o);\n var u = n.Qr().zn(r.END, t);\n i.Su(u.Jc), i.Xu(u.Jc), e.Su(u.Jc), n.Yc().dispatchEvent(u), i.Fs(), i.Ps(!1);\n },\n nl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = i.Mo(),\n u = t.Bt;\n n.Qr().El(), n.Kc().pause(), n.Bl().stop(), i._s(u), i.ps(u), e.Io(u), i.Io(u), i.us(), i.Ss(!0), i.Es(!0), i.ks(o), i.As(u), e.So(), i.So();\n var s = n.Qr().zn(r.PAUSE, t);\n i.Su(s.Jc), i.Xu(s.Jc), e.Su(s.Jc), n.Yc().dispatchEvent(s);\n },\n il: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = t.Bt;\n n.Qr().El(), i._s(o), i.ps(o), e.Io(o), i.Io(o), e.So(), i.So();\n var u = n.Qr().zn(r.PAUSE, t);\n i.Su(u.Jc), i.Xu(u.Jc), e.Su(u.Jc), n.Yc().dispatchEvent(u);\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(2).R;\n n.exports = function (n) {\n i.extend(this, {\n el: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = t.Bt;\n n.Qr().Pl(), n.Bl().stop(), n.Qr().El(), e.Io(o), i.Io(o), i._s(o);\n var u = n.Qr().zn(r.END, t);\n i.Su(u.Jc), i.Xu(u.Jc), e.Su(u.Jc), n.Yc().dispatchEvent(u), i.ws() && i.Is() && (i.Ts(o - i.Cs()), i.Es(!1)), i.Fs(), i.Ps(!1);\n },\n il: function (t) {\n var e = n.fo(),\n i = e.ao(),\n r = t.Bt;\n e.Io(r), i.Io(r), e.So(), i.So(), i.ws() && i.Is() && (i.Ls(r), i.Es(!1)), i._s(r), i.ps(r);\n },\n tl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = i.Mo(),\n u = t.Bt;\n e._u(), i._u(), i.bo(), e.Io(u), i.Io(u), i.ws() && (i.Is() && (i.Ls(u), i.Es(!1)), i.xs(o), i.Ss(!1)), i._s(u), i.ps(u), e.Do(u), i.Do(u), i.as(o), n.Kc().resume(), n.Bl().start();\n var s = n.Qr().zn(r.PLAY, t);\n i.Su(s.Jc), i.Xu(s.Jc), e.Su(s.Jc), n.Yc().dispatchEvent(s);\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(2).R;\n n.exports = function (n) {\n i.extend(this, {\n cl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = t.Bt;\n n.Qr().Pl(), n.Bl().stop(), e.Io(o), i.Io(o), i._s(o);\n var u = n.Qr().zn(r.END, t);\n i.Su(u.Jc), i.Xu(u.Jc), e.Su(u.Jc), n.Yc().dispatchEvent(u), i.ws() && i.Is() && (i.Ts(o - i.Cs()), i.Es(!1)), i.Fs(), i.Ps(!1);\n },\n il: function (t) {\n var e = n.fo(),\n i = e.ao(),\n r = t.Bt;\n e.Io(r), i.Io(r), i._s(r), i.ps(r);\n },\n tl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = i.Mo(),\n u = t.Bt;\n e._u(), i._u(), i.bo(), e.Io(u), i.Io(u), i.ws() && (i.Is() && (i.Ls(u), i.Es(!1)), i.xs(o), i.Ss(!1)), i._s(u), i.ps(u), e.Do(u), i.Do(u), i.as(o), n.Kc().resume(), n.Bl().start();\n var s = n.Qr().zn(r.PLAY, t);\n i.Su(s.Jc), i.Xu(s.Jc), e.Su(s.Jc), n.Yc().dispatchEvent(s);\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(2).R;\n n.exports = function (n) {\n i.extend(this, {\n el: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = t.Bt;\n n.Qr().Pl(), n.Bl().stop(), e.Io(o), i.Io(o), i._s(o), i.ws() && i.Is() && (i.Ts(o - i.Cs()), i.Es(!1));\n var u = n.Qr().zn(r.END, t);\n i.Su(u.Jc), i.Xu(u.Jc), e.Su(u.Jc), n.Yc().dispatchEvent(u), i.Fs(), i.Ps(!1);\n },\n nl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n r = i.Mo(),\n o = t.Bt;\n e.Io(o), i.Io(o), i.ws() ? i.Is() || (i.As(o), i.Es(!0)) : i.us(), i.ws() || (i.Ss(!0), i.Es(!0), i.ks(r), i.As(o)), i._s(o), i.ps(o);\n },\n il: function (t) {\n var e = n.fo(),\n i = e.ao(),\n r = t.Bt;\n e.Io(r), i.Io(r), i._s(r), i.ps(r);\n },\n hl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = i.Mo(),\n u = t.Bt;\n e._u(), i._u(), e.Io(u), i.Io(u), i.bo(), e.Do(u), i.Do(u), i._s(u), i.ps(u), i.as(o), n.Kc().resume(), n.Bl().start();\n var s = n.Qr().zn(r.PLAY, t);\n i.Su(s.Jc), i.Xu(s.Jc), e.Su(s.Jc), n.Yc().dispatchEvent(s);\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(2).R;\n n.exports = function (n) {\n i.extend(this, {\n el: function (t) {\n var e = n.fo().ao(),\n i = t.Bt;\n e.ws() && e.Is() && (e.Ts(i - e.Cs()), e.Es(!1)), e._s(i), e.Fs(), e.Ps(!1);\n },\n il: function (t) {\n var e = n.fo().ao(),\n i = t.Bt;\n e.ws() && e.Is() && (e.Ls(i), e.Es(!1));\n },\n tl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = i.Mo(),\n u = t.Bt;\n i.ws() && (i.Is() && (i.Ls(u), i.Es(!1)), i.xs(o), i.Ss(!1)),\n (i.Xs() || 0 == e.lu()) && (e.du(), i.bu(!1)),\n e._u(),\n i.Ps(!0),\n i.yu(!0),\n i.Vs(),\n (0 == i.Hs() || i.iu() <= i.Hs()) && (i.mu(i.iu()), i.Bs(), i.au(0), i.qs()),\n i._u(),\n i.bo(),\n e.Do(u),\n i.Do(u),\n i._s(u),\n i.ps(u),\n i.as(o),\n n.Qr().pl() || ((t.Vt.ns_st_lt = n.Qr().ml() + u - n.Qr().yl() + ""), n.Qr().gl(!0)),\n n.Kc().resume(),\n n.Bl().start();\n var s = n.Qr().zn(r.PLAY, t);\n i.Su(s.Jc), i.Xu(s.Jc), e.Su(s.Jc), n.Yc().dispatchEvent(s);\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0);\n n.exports = function (n) {\n i.extend(this, {\n il: function (t) {\n var e = n.fo(),\n i = e.ao(),\n r = t.Bt;\n e.So(), i.So(), i.ws() && i.Is() && (i.Ls(r), i.Es(!1)), i._s(r), i.ps(r);\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(2).R;\n n.exports = function (n) {\n i.extend(this, {\n el: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = t.Bt;\n n.Qr().Pl(), n.Bl().stop(), i._s(o);\n var u = n.Qr().zn(r.END, t);\n i.Su(u.Jc), i.Xu(u.Jc), e.Su(u.Jc), n.Yc().dispatchEvent(u), i.ws() && i.Is() && (i.Ts(o - i.Cs()), i.Es(!1)), i.Fs(), i.Ps(!1);\n },\n tl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = i.Mo(),\n u = t.Bt;\n e._u(),\n i._u(),\n i.bo(),\n i.ws() && (i.Is() && (i.Ls(u), i.Es(!1)), i.xs(o), i.Ss(!1)),\n i._s(u),\n i.ps(u),\n e.Do(u),\n i.Do(u),\n i.as(o),\n n.Qr().pl() || ((t.Vt.ns_st_lt = n.Qr().ml() + u - n.Qr().yl() + ""), n.Qr().gl(!0)),\n n.Kc().resume(),\n n.Bl().start();\n var s = n.Qr().zn(r.PLAY, t);\n i.Su(s.Jc), i.Xu(s.Jc), e.Su(s.Jc), n.Yc().dispatchEvent(s);\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(2).R;\n n.exports = function (n) {\n i.extend(this, {\n ol: function (t) {\n var e = n.fo().ao(),\n i = e.Mo(),\n r = t.Bt;\n e.ws() ? e.Is() || (e.As(r), e.Es(!0)) : e.us(), e.ws() || (e.Ss(!0), e.Es(!0), e.ks(i), e.As(r)), e._s(r), e.ps(r);\n },\n rl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n r = t.Bt;\n e.Co(r), i.Co(r), i._s(r), i.ps(r);\n },\n dl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = i.Mo(),\n u = t.Bt;\n e._u(), i._u(), i.ws() && (i.Is() && (i.Ls(u), i.Es(!1)), i.xs(o), i.Ss(!1)), i.bo(), e.Do(u), i.Do(u), i._s(u), i.ps(u), i.as(o), n.Kc().resume(), n.Bl().start();\n var s = n.Qr().zn(r.PLAY, t);\n i.Su(s.Jc), i.Xu(s.Jc), e.Su(s.Jc), n.Yc().dispatchEvent(s);\n },\n fl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n r = t.Bt;\n e.Io(r), i.Io(r), i._s(r), i.ps(r);\n },\n ll: function (t) {\n var e = n.fo().ao(),\n i = t.Bt;\n e.ws() && e.Is() && (e.Ls(i), e.Es(!1)), e._s(i), e.ps(i);\n },\n vl: function (t) {\n var e = n.fo(),\n i = e.ao(),\n o = t.Bt;\n n.Qr().Pl(), n.Bl().stop(), i._s(o);\n var u = n.Qr().zn(r.END, t);\n i.Su(u.Jc), i.Xu(u.Jc), e.Su(u.Jc), n.Yc().dispatchEvent(u), i.ws() && i.Is() && (i.Ts(o - i.Cs()), i.Es(!1)), i.Fs(), i.Ps(!1);\n },\n _l: function (t) {\n var e = n.fo().ao(),\n i = t.Bt;\n e.ws() && e.Is() && (e.Ls(i), e.Es(!1)), e._s(i), e.ps(i);\n },\n al: function (t) {\n var e = n.fo(),\n i = e.ao(),\n r = i.Mo(),\n o = t.Bt;\n n.Qr().El(), e.Io(o), i.Io(o), e.Do(o), i.Do(o), i.as(r), i._s(o), i.ps(o), n.Kc().resume(), n.Bl().start();\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0);\n n.exports = function (n) {\n var t, e, r, o, u, s, a, f;\n i.extend(this, {\n Rl: function () {\n return e;\n },\n Qr: function () {\n return n;\n },\n getConfiguration: function () {\n return t;\n },\n Yc: function () {\n return r;\n },\n Tu: function () {\n return o;\n },\n Kc: function () {\n return u;\n },\n Bl: function () {\n return s;\n },\n fo: function () {\n return a;\n },\n Iu: function () {\n return f;\n },\n Al: function (n) {\n t = n;\n },\n Cl: function (n) {\n e = n;\n },\n Ll: function (n) {\n s = n;\n },\n Dl: function (n) {\n u = n;\n },\n Nl: function (n) {\n r = n;\n },\n Ol: function (n) {\n o = n;\n },\n Il: function (n) {\n a = n;\n },\n kl: function (n) {\n f = n;\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0);\n n.exports = function (n) {\n i.extend(this, { addLabels: n.addLabels, setLabel: n.setLabel, removeLabel: n.removeLabel, removeAllLabels: n.removeAllLabels, getStreamingPublisherConfiguration: n.getStreamingPublisherConfiguration });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(8),\n o = e(47),\n u = e(48),\n s = e(49),\n a = e(55),\n f = e(122),\n c = {\n Ml: "pauseOnBuffering",\n Ul: "pauseOnBufferingInterval",\n xl: "exitEndEvent",\n Zr: "keepAliveMeasurement",\n no: "keepAliveInterval",\n do: "heartbeatMeasurement",\n vo: "heartbeatIntervals",\n Qc: "includedPublishers",\n Uu: "autoResumeStateOnAssetChange",\n ia: "playbackIntervalMergeTolerance",\n labels: "labels",\n ra: "customStartMinimumPlayback",\n };\n n.exports = function (n) {\n var t = this,\n e = "",\n l = {};\n for (var d in ((t.Ml = !0), (t.Ul = 500), (t.xl = !0), (t.Zr = o.ENABLED), (t.no = o.to), (t["do"] = u.ENABLED), (t.vo = u._o), (t.Qc = []), (t.Uu = s.Vu), (t.ia = a.oa), (t.labels = {}), (t.ra = a.sa), c)) {\n var v = n[c[d]];\n null != v && (t[d] = v);\n }\n (t.no = t.no < o.eo ? o.eo : t.no),\n (t.Ul = t.Ul < 300 ? 300 : t.Ul),\n (t.ia = t.ia < a.ua ? a.ua : t.ia),\n (t.no = 1e3 * Math.floor(t.no / 1e3)),\n (t.Ul = 100 * Math.floor(t.Ul / 100)),\n (t.ia = 100 * Math.floor(t.ia / 100)),\n (t.ra = 1e3 * Math.floor(t.ra / 1e3)),\n (e += t.Ml ? "1" : "0"),\n (e += t.Zr ? "1" : "0"),\n (e += t["do"] ? "1" : "0"),\n (e += t.Uu ? "1" : "0"),\n (e += t.xl ? "1" : "0"),\n (e += u.ho(t.vo, u._o) ? "0" : "1"),\n (e += t.Qc.length > 0 ? "1" : "0"),\n (e += t.ia != a.oa ? "1" : "0"),\n (e += t.ra != a.ql ? "1" : "0"),\n (e += "-" + (t.Ul / 100).toString(16)),\n (e += "-" + (t.no / 1e3).toString(16)),\n (e += "-" + (t.ra / 1e3).toString(16)),\n (e += "-" + (t.ia / 100).toString(16)),\n (t.zc = function () {\n return e;\n }),\n i.extend(t, {\n getLabels: function () {\n return t.labels;\n },\n addLabels: function (n) {\n r.zn(t.labels, n);\n },\n setLabel: function (n, e) {\n r.Yn(t.labels, n, e);\n },\n removeLabel: function (n) {\n delete t.labels[n];\n },\n removeAllLabels: function () {\n t.labels = {};\n },\n getStreamingPublisherConfiguration: function (n) {\n return (l[n] = l[n] || new f()), l[n];\n },\n Xc: function () {\n return l;\n },\n });\n };\n },\n function (n, t) {\n var e = e || {};\n (e.jl = function (n) {\n return n.replace(/([0-9A-Fa-f]{2})/g, function () {\n return String.fromCharCode(parseInt(arguments[1], 16));\n });\n }),\n (e.Gu = function (n, t) {\n var e = t + "";\n return (\n Array(n)\n .join("0")\n .substring(0, Math.max(n - e.length, 0)) + e\n );\n }),\n (n.exports = e);\n },\n function (n, t, e) {\n var i = e(0),\n r = e(50);\n n.exports = function () {\n var n = null,\n t = {};\n i.extend(this, {\n uu: function (e) {\n var i = e.Vo();\n (t[i] = e), r.Fo(e.Yr("ns_st_ad")) || (n = e);\n },\n Au: function (n) {\n return !!t[n];\n },\n ao: function (n) {\n return t[n];\n },\n Wo: function () {\n return n;\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(8);\n n.exports = function () {\n var n;\n i.extend(this, {\n setLabel: function (t, e) {\n r.Yn(n, t, e);\n },\n removeLabel: function (t) {\n delete n[t];\n },\n addLabels: function (t) {\n r.zn(n, t);\n },\n removeAllLabels: function () {\n n = {};\n },\n getLabels: function () {\n return n;\n },\n }),\n (n = {});\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(2).R,\n o = e(18);\n n.exports = function (n, t) {\n var e,\n u,\n s,\n a,\n f = this;\n function c() {\n for (var n = 0; n < u.length; ++n) {\n var e = u[n];\n t.$i(e);\n }\n u = [];\n }\n function l(n) {\n switch (n) {\n case o.TIME_WINDOW_ELAPSED:\n (a = !0), v() && d();\n break;\n case o.PUBLISHER:\n a && v() && d();\n }\n }\n function d() {\n for (var e = 0; e < s.length; ++e) s[e]();\n t.configuration.removeListener(l);\n var i = t.configuration.cr();\n for (e = 0; e < u.length; ++e)\n for (var r = u[e], o = 0; o < i.length; o++) {\n var a = i[o];\n (n.Qc.length > 0 && -1 == n.Qc.indexOf(a)) || r.addIncludedPublisher(a);\n }\n c();\n }\n function v() {\n var e = t.configuration.cr();\n if (0 == n.Qc.length) return !0;\n for (var i = 0; i < e.length; ++i) if (-1 != n.Qc.indexOf(e[i])) return !0;\n return !1;\n }\n i.extend(this, {\n dispatchEvent: function (n) {\n n.Gl != r.HEARTBEAT && f.Hl(), u.push(n.uc), a && v() && c();\n },\n Tl: function (n) {\n s.push(n);\n },\n Yi: function () {\n return e;\n },\n Hl: function () {\n e++;\n },\n }),\n (e = 1),\n (u = []),\n (s = []),\n ((a = t.configuration.wr()) && v()) || t.configuration.addListener(l);\n };\n },\n function (n, t) {\n n.exports = function (n, t) {\n function e(t) {\n t = t || [];\n var e = ["comScore", +new Date()];\n return n && e.push(n), (t = Array.prototype.slice.call(t)), (e = e.concat(t));\n }\n function i(n) {\n var e, i, r;\n if ("boolean" == typeof t || !t) return !!t;\n if (((r = n.join(" ")), t instanceof Array && t.length > 0)) {\n for (e = 0; e < t.length; ++e) if ((i = t[e]) instanceof RegExp && i.test(r)) return !0;\n return !1;\n }\n if ("object" == typeof t) {\n var o = !1;\n if (t.hide instanceof Array)\n for (e = 0; e < t.hide.length; ++e)\n if ((i = t.hide[e]) instanceof RegExp && i.test(r)) {\n o = !0;\n break;\n }\n if (t.show instanceof Array) for (e = 0; e < t.show.length; ++e) if ((i = t.show[e]) instanceof RegExp && i.test(r)) return !0;\n return !o && !t.show;\n }\n return !0;\n }\n (this.log = function () {\n var n = e(arguments);\n "undefined" != typeof console && "function" == typeof console.log && i(n) && console.log.apply(console, n);\n }),\n (this.warn = function () {\n var n = e(arguments);\n "undefined" != typeof console && "function" == typeof console.warn && i(n) && console.warn.apply(console, n);\n }),\n (this.error = function () {\n var n = e(arguments);\n "undefined" != typeof console && "function" == typeof console.error && i(n) && console.error.apply(console, n);\n }),\n (this.Eu = function (n) {\n for (var t = ["API call to:", n], e = 1; e < arguments.length; ++e) t.push("arg" + e + ":", arguments[e]);\n this.log.apply(this, t);\n }),\n (this.Pu = function () {\n var n = ["Trace log:"];\n n.push.apply(n, Array.prototype.slice.call(arguments)), this.log.apply(this, n);\n }),\n (this.Kl = function (n, t) {\n var e = ["Deprecated API:", n, "is deprecated and will be eventually removed."];\n t && e.push("Use", t, "instead."), this.warn.apply(this, e);\n });\n };\n },\n function (n, t, e) {\n var i = e(2).M,\n r = e(0),\n o = e(2).R;\n n.exports = function (n) {\n var t,\n e,\n u,\n s = this;\n r.extend(s, {\n $c: function (n) {\n if (u == i.IDLE) {\n if (n == o.PLAY) return i.PLAYING;\n if (n == o.SEEK_START) return i.SEEKING_BEFORE_PLAYBACK;\n if (n == o.BUFFER) return i.BUFFERING_BEFORE_PLAYBACK;\n } else if (u == i.PLAYBACK_NOT_STARTED) {\n if (n == o.PLAY) return i.PLAYING;\n if (n == o.SEEK_START) return i.SEEKING_BEFORE_PLAYBACK;\n if (n == o.BUFFER) return i.BUFFERING_BEFORE_PLAYBACK;\n if (n == o.END || n == o.AD_SKIP) return i.IDLE;\n } else if (u == i.PLAYING) {\n if (n == o.END || n == o.AD_SKIP) return i.IDLE;\n if (n == o.BUFFER) return i.BUFFERING_DURING_PLAYBACK;\n if (n == o.PAUSE) return i.PAUSED;\n if (n == o.SEEK_START) return i.SEEKING_DURING_PLAYBACK;\n } else if (u == i.PAUSED) {\n if (n == o.END || n == o.AD_SKIP) return i.IDLE;\n if (n == o.BUFFER) return i.BUFFERING_DURING_PAUSE;\n if (n == o.PLAY) return i.PLAYING;\n if (n == o.SEEK_START) return i.SEEKING_DURING_PAUSE;\n } else if (u == i.BUFFERING_BEFORE_PLAYBACK) {\n if (n == o.END || n == o.AD_SKIP) return i.IDLE;\n if (n == o.PAUSE || n == o.BUFFER_STOP) return i.PLAYBACK_NOT_STARTED;\n if (n == o.PLAY) return i.PLAYING;\n if (n == o.SEEK_START) return i.SEEKING_BEFORE_PLAYBACK;\n } else if (u == i.BUFFERING_DURING_PLAYBACK) {\n if (n == o.END || n == o.AD_SKIP) return i.IDLE;\n if (n == o.PLAY || n == o.BUFFER_STOP) return i.PLAYING;\n if (n == o.PAUSE_ON_BUFFERING) return i.PAUSED_DURING_BUFFERING;\n if (n == o.SEEK_START) return i.SEEKING_DURING_BUFFERING;\n if (n == o.PAUSE) return i.PAUSED;\n } else if (u == i.BUFFERING_DURING_SEEKING) {\n if (n == o.END || n == o.AD_SKIP) return i.IDLE;\n if (n == o.PLAY) return i.PLAYING;\n if (n == o.BUFFER_STOP) return i.SEEKING_DURING_PLAYBACK;\n if (n == o.PAUSE) return i.PAUSED;\n } else if (u == i.BUFFERING_DURING_PAUSE) {\n if (n == o.END || n == o.AD_SKIP) return i.IDLE;\n if (n == o.PLAY) return i.PLAYING;\n if (n == o.SEEK_START) return i.SEEKING_DURING_PAUSE;\n if (n == o.BUFFER_STOP || n == o.PAUSE) return i.PAUSED;\n } else if (u == i.SEEKING_BEFORE_PLAYBACK) {\n if (n == o.END || n == o.AD_SKIP) return i.IDLE;\n if (n == o.PAUSE) return i.PLAYBACK_NOT_STARTED;\n if (n == o.PLAY) return i.PLAYING;\n if (n == o.BUFFER) return i.BUFFERING_BEFORE_PLAYBACK;\n } else if (u == i.SEEKING_DURING_PLAYBACK) {\n if (n == o.END || n == o.AD_SKIP) return i.IDLE;\n if (n == o.PLAY) return i.PLAYING;\n if (n == o.PAUSE) return i.PAUSED;\n if (n == o.BUFFER) return i.BUFFERING_DURING_SEEKING;\n } else if (u == i.SEEKING_DURING_BUFFERING) {\n if (n == o.END || n == o.AD_SKIP) return i.IDLE;\n if (n == o.PLAY) return i.PLAYING;\n if (n == o.PAUSE || n == o.BUFFER_STOP) return i.PAUSED;\n if (n == o.BUFFER) return i.BUFFERING_DURING_SEEKING;\n } else if (u == i.SEEKING_DURING_PAUSE) {\n if (n == o.END || n == o.AD_SKIP) return i.IDLE;\n if (n == o.PLAY) return i.PLAYING;\n if (n == o.PAUSE || n == o.BUFFER_STOP) return i.PAUSED;\n if (n == o.BUFFER) return i.BUFFERING_DURING_PAUSE;\n } else if (u == i.PAUSED_DURING_BUFFERING) {\n if (n == o.END || n == o.AD_SKIP) return i.IDLE;\n if (n == o.SEEK_START) return i.SEEKING_DURING_BUFFERING;\n if (n == o.PAUSE) return i.PAUSED;\n if (n == o.PLAY || n == o.BUFFER_STOP) return i.PLAYING;\n }\n return null;\n },\n Nu: function () {\n return u;\n },\n Ou: function (n, i) {\n var r = s.$c(n);\n u != r && ((e = u), (u = r), (t = i));\n },\n Jl: function () {\n return e;\n },\n Yl: function () {\n return t;\n },\n }),\n (u = i.IDLE),\n (e = null),\n (t = NaN);\n };\n },\n function (n, t) {\n n.exports = function (n, t, e) {\n (this.Gl = n), (this.uc = t), (this.Jc = e);\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(8),\n o = e(2).R,\n u = e(16);\n n.exports = function (n) {\n var t = n.Qr();\n function e(n, t) {\n var e = new u(n);\n return r.zn(e.Ft, t || {}), e;\n }\n function s(n, t, i, r) {\n var o = e(n, r);\n return null != i && o.setLabel(t, i + ""), o;\n }\n i.extend(this, {\n setLoadTimeOffset: function (e) {\n n.Iu().Eu("setLoadTimeOffset", e), t.setLoadTimeOffset(e);\n },\n setPlaybackSessionExpectedLength: function (e) {\n n.Iu().Eu("setPlaybackSessionExpectedLength", e), t.jc().fo().pu(e);\n },\n setPlaybackSessionExpectedNumberOfItems: function (e) {\n n.Iu().Eu("setPlaybackSessionExpectedNumberOfItems", e), t.jc().fo().gu(e);\n },\n notifySkipAd: function (i) {\n n.Iu().Eu("notifySkipAd", i);\n var r = e(o.AD_SKIP, i);\n t.Ou(r);\n },\n notifyLoad: function (i) {\n n.Iu().Eu("notifyLoad", i);\n var r = e(o.LOAD, i);\n t.Xr(r);\n },\n notifyEngage: function (i) {\n n.Iu().Eu("notifyEngage", i);\n var r = e(o.ENGAGE, i);\n t.Xr(r);\n },\n notifyCallToAction: function (i) {\n n.Iu().Eu("notifyCallToAction", i);\n var r = e(o.CTA, i);\n t.Xr(r);\n },\n notifyDrmFail: function (i) {\n n.Iu().Eu("notifyDrmFail", i);\n var r = e(o.DRM_FAILED, i);\n t.Xr(r);\n },\n notifyDrmApprove: function (i) {\n n.Iu().Eu("notifyDrmApprove", i);\n var r = e(o.DRM_APPROVED, i);\n t.Xr(r);\n },\n notifyDrmDeny: function (i) {\n n.Iu().Eu("notifyDrmDeny", i);\n var r = e(o.DRM_DENIED, i);\n t.Xr(r);\n },\n notifyCustomEvent: function (i, r) {\n n.Iu().Eu("notifyCustomEvent", i, r);\n var u = e(o.CUSTOM, r);\n u.setLabel("ns_st_cev", i + ""), t.Xr(u);\n },\n notifyChangeBitrate: function (e, i) {\n n.Iu().Eu("notifyChangeBitrate", e, i);\n var r = s(o.BIT_RATE, "ns_st_br", e, i);\n t.Xr(r);\n },\n notifyChangeVolume: function (e, i) {\n n.Iu().Eu("notifyChangeVolume", e, i);\n var r = Math.floor(100 * e),\n u = s(o.VOLUME, "ns_st_vo", r, i);\n t.Xr(u);\n },\n notifyChangeWindowState: function (e, i) {\n n.Iu().Eu("notifyChangeWindowState", e, i);\n var r = s(o.WINDOW_STATE, "ns_st_ws", e, i);\n t.Xr(r);\n },\n notifyChangeAudioTrack: function (e, i) {\n n.Iu().Eu("notifyChangeAudioTrack", e, i);\n var r = s(o.AUDIO, "ns_st_at", e, i);\n t.Xr(r);\n },\n notifyChangeVideoTrack: function (e, i) {\n n.Iu().Eu("notifyChangeVideoTrack", e, i);\n var r = s(o.VIDEO, "ns_st_vt", e, i);\n t.Xr(r);\n },\n notifyChangeSubtitleTrack: function (e, i) {\n n.Iu().Eu("notifyChangeSubtitleTrack", e, i);\n var r = s(o.SUBS, "ns_st_tt", e, i);\n t.Xr(r);\n },\n notifyChangeCdn: function (e, i) {\n n.Iu().Eu("notifyChangeCdn", e, i);\n var r = s(o.CDN, "ns_st_cdn", e, i);\n t.Xr(r);\n },\n notifyError: function (n, e) {\n t.jc().Iu().Eu("notifyError", n, e);\n var i = s(o.ERROR, "ns_st_er", n, e);\n t.Xr(i);\n },\n notifyTransferPlayback: function (n, e) {\n t.jc().Iu().Eu("notifyTransferPlayback", n, e);\n var i = s(o.TRANSFER, "ns_st_rp", n, e);\n t.Xr(i);\n },\n });\n };\n },\n function (n, t, e) {\n var i = e(0),\n r = e(54);\n function o() {\n var n = new r();\n i.extend(this, n);\n }\n i.extend(o, r), (n.exports = o);\n },\n function (n, t, e) {\n var i = e(0),\n r = e(53);\n function o() {\n var n = this,\n t = new r();\n i.extend(n, t),\n i.extend(n, {\n getMetadataLabels: function (t) {\n var e = {};\n return t && i.extend(e, t.getStandardLabels()), i.extend(e, n.getStandardLabels()), t && i.extend(e, t.getCustomLabels()), i.extend(e, n.getCustomLabels()), e;\n },\n });\n }\n i.extend(o, r), (n.exports = o);\n },\n function (n, t) {\n n.exports = { NORMAL: "norm", FULL_SCREEN: "full", MINIMIZED: "min", MAXIMIZED: "max" };\n },\n ]);\n});\n',
language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLab1feec1c0cd4ab1832e6fe8b2e6285e",name:"60 - univideo - product adapter (heartbeat) [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:60}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"(function () {\n /* global $t, ADB, AppMeasurement, BI, visitor, uniVideo, s */\n $t('register', 'univideo_ahb_adobeAppMeasurmentLoaded');\n\n var logEvent = (window.BI && BI.console && BI?.console?.build('uni_heartbeat')) || Function.prototype;\n\n var uniEvent = window.uniVideo?.event || {};\n\n var appMtrack = function (situation, actionContextData) {\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', situation);\n for (var item in actionContextData) delete s?.contextData[item];\n };\n\n /* SNIPAF: {\"name\": \"get_brand_by_domain\", \"version\":\"1.0\"} */\n const getBrand = function () {\n // would be better is this wasnt based on domain\n switch (window.s.topLevelDomain) {\n case 'today.com':\n return 'today';\n\n case 'msnbc.com':\n return 'msnbc';\n\n case 'telemundo.com':\n return 'telemundo';\n\n default:\n return 'nbcnews';\n }\n };\n /* SNIPAF: END */\n\n function roundAdLength(num) {\n if (num < 900) {\n return num;\n }\n let lastTwoDigits = num % 100;\n return Math.round(lastTwoDigits / 10) * 10;\n }\n\n var setupHeartbeat = function (s) {\n uniVideo.addEventListenerFactory(function heartbeat() {\n 'use strict';\n // statics\n var noValue = 'not available';\n var isAmp = location.hash.indexOf('amp=1') !== -1;\n var isEmbedded = location.pathname.indexOf('/embedded-video/') !== -1;\n\n var contentType = function () {\n if (isAmp || isEmbedded) {\n return 'offsite';\n }\n else {\n return s?.contextData['news?.contenttype'];\n }\n };\n\n var ampContentType = function () {\n var getParamFromHash = function (url, Param) {\n var re = new RegExp('#.*[?&]' + Param + '=([^&]+)(&|$)');\n var match = url.match(re);\n return match ? match[1] : '';\n };\n\n var passedType = getParamFromHash(location.hash, 'pageType');\n\n switch (passedType) {\n case 'video':\n return 'AMP:canonical video';\n\n default:\n return 'AMP:post';\n }\n };\n\n // formatting for publish date\n var formatDate = function (dateStr) {\n // convert: Thu Nov 09 2017 16:32:29 GMT+0000 (UTC) convert to 12/22/2015\n if (typeof dateStr !== 'string') {\n return false;\n }\n var date = new Date(dateStr);\n // return if its not a valid date\n if (isNaN(date.getTime())) {\n return false;\n }\n\n return date.getUTCMonth() + 1 + '/' + date.getUTCDate() + '/' + date.getUTCFullYear();\n };\n\n // privates\n var _mediaTracker = null;\n var _appMeasurement = null;\n var _playheadPosition = 0;\n var _startupTime = 0;\n var sessionIsStarted = false;\n\n var Media = ADB.Media ?? null;\n var MediaConfig = ADB.MediaConfig ?? null;\n\n var playerStyle = function () {\n switch (contentType()) {\n case 'vertical':\n case 'subvertical':\n case 'show':\n return 'Front Player';\n case 'cover':\n return 'Cover Player';\n case 'canonical video':\n return 'Canonical';\n case 'post':\n return 'Inline';\n case 'offsite':\n if (isAmp) return 'AMP Player';\n return 'Offsite Embedded';\n default:\n return noValue;\n }\n };\n\n var configureAndGetTracker = function (playerName, playerVersion) {\n var debugState\n = (BI?.console?.list() && BI?.console?.list()[logEvent.logGroup] === 'true') || false;\n\n if (!_mediaTracker && playerName) {\n var appMAccount = s.account || '';\n _appMeasurement = new AppMeasurement(appMAccount);\n _appMeasurement.visitor = visitor;\n _appMeasurement.trackingServer = s.trackingServer;\n _appMeasurement.charSet = 'UTF-8';\n _appMeasurement.doPlugins = false;\n _appMeasurement.ssl = true;\n\n $t('track', 'univideo_ahb_adobeAppMeasurmentLoaded', { sc_obj: _appMeasurement });\n\n // Media configuration (v3). NOTE: ovp removed in v3.\n if (!Media || !MediaConfig) {\n logEvent('Media SDK not available - skipping tracker configuration');\n return;\n }\n\n var mediaConfig = new MediaConfig();\n mediaConfig.trackingServer = 'nbcume.hb-api.omtrdc.net';\n mediaConfig.playerName = playerName;\n mediaConfig.debugLogging = debugState;\n mediaConfig.ssl = true;\n mediaConfig.appVersion = playerVersion || 'unknown';\n mediaConfig.channel = (function () {\n if (playerStyle() === 'Offsite Embedded') return 'Off-domain';\n return 'On-domain';\n })();\n\n // Media Heartbeat initialization - only configure if not already done globally\n if (!window.__MediaConfigured) {\n Media.configure(mediaConfig, _appMeasurement);\n window.__MediaConfigured = true;\n }\n _mediaTracker = Media.getInstance();\n }\n };\n\n return function eventListener(_e, data) {\n var videoData = data.videoData || {};\n var videoState = data.videoState || {};\n _startupTime = videoState.startupTime;\n\n // progress: update playhead & return (v3 requires explicit updates)\n if (data.eventType === uniEvent.PROGRESS) {\n _playheadPosition = videoData.playheadPosition;\n if (_mediaTracker) {\n _mediaTracker.updatePlayhead(Math.round((_playheadPosition || 0) / 1000)); // seconds\n }\n return;\n }\n\n // ensure tracker is configured/created\n configureAndGetTracker(videoData.playbackAdapter, videoData?.custom?.playerVersion);\n\n // Provide QoE when available (bitrate/fps not available here)\n if (_mediaTracker) {\n var qoe = Media.createQoEObject(0, Math.round(_startupTime || 0), 0, 0);\n _mediaTracker.updateQoEObject(qoe);\n }\n\n // classify video type\n var videoType = (function () {\n if (\n /^lv_/.test(videoData.guid)\n || /^nbcnewslive/.test(videoData.guid)\n || /^TELE_ANV_ID/.test(videoData.guid)\n || videoData.videoType === 'nonBroadcastLiveVideo'\n || videoData.streamType === 'linear'\n ) {\n return 'Linear';\n }\n else if (/^nn_netcast_/.test(videoData.guid)) {\n return 'VOD Episode';\n }\n else if (/^f_vert_/.test(videoData.guid)) {\n return 'Vertical Video';\n }\n else {\n return 'VOD Clip';\n }\n })();\n\n var startSession = function (customContextData, videoType) {\n if (videoState.playState === 'stop' && _mediaTracker) {\n var mediaLength = (function () {\n if (videoType === 'Linear') {\n var isSingleLiveEvent\n = /^lv_/.test(videoData.guid) || videoData.videoType === 'nonBroadcastLiveVideo';\n var isJWPlayer = videoData.playbackAdapter === 'JW Player';\n var isCVSDK = videoData.playbackAdapter === 'cvsdk';\n\n var isLiveCvsdkEvent = (videoData.videoType === 'Live' && isCVSDK);\n var adobeDefaultLength = 86400;\n var adobeDefaultCvsdkLength = 1800;\n if (isSingleLiveEvent && isJWPlayer) return adobeDefaultLength;\n else if (isLiveCvsdkEvent) return adobeDefaultCvsdkLength;\n else return -1;\n }\n else {\n // Return duration in seconds, or 0 if null/undefined\n return (typeof videoData.duration === 'number') ? videoData.duration : 0;\n }\n })();\n\n // Use explicit string values for streamType/mediaType to avoid undefined enum constants.\n var mediaInfo = Media.createMediaObject(\n customContextData.videotitle || noValue,\n customContextData.videoguid || noValue,\n mediaLength,\n videoType === 'Linear' ? 'live' : 'vod',\n 'video',\n );\n\n _mediaTracker.trackSessionStart(mediaInfo, customContextData);\n }\n };\n\n function capitalizeFirstLowerRest(str) {\n return str ? str.charAt(0).toUpperCase() + str.slice(1).toLowerCase() : str;\n }\n var playInitiate = capitalizeFirstLowerRest(videoData.playInitiate);\n\n var pageName = isAmp ? getBrand() + ':' + ampContentType() + ':embeddedVideo' : s.pageName;\n var customContextData = {\n 'videoappname': videoData?.custom?.appName || noValue,\n 'videoappversion': videoData?.custom?.appVersion || noValue,\n 'videodomain': videoData?.custom?.videoDomain || noValue,\n 'videocliptype': videoData.videoType || noValue,\n 'videocontentsource': videoData.source || noValue,\n 'videocontenttype': 'Video',\n 'videodate': s.customTimeParting('d'),\n 'videoday': s.customTimeParting('dw'),\n 'videoexperience': videoType == 'Vertical Video' ? 'Vertical' : 'Horizontal',\n 'videoguid': videoData.guid || noValue,\n 'videohour': s.customTimeParting('h').split(':')[0],\n 'videoinitiate': playInitiate,\n 'videoitemnumber': videoData?.custom?.videoitemnumber || noValue,\n 'videominute': s.customTimeParting('m').split(':')[1],\n 'videompxid': videoData.mpxId || noValue,\n 'videonetwork': videoData.newsNetwork || noValue,\n 'videopagecontentcategory': noValue,\n 'videopagename': pageName || noValue,\n 'videopagetype': isAmp ? ampContentType() : contentType(),\n 'videoplatform': 'Web',\n 'videoplayerstyle': playerStyle() || noValue,\n 'videoplayertech': videoData.playbackAdapter,\n 'videoplayerurl': window.location.href.split('?')[0],\n 'videoplaylist': videoData.playListLabel || noValue,\n 'videoplaylistid': videoData.playListId || noValue,\n 'videoprogram': videoData.source || noValue,\n 'videopublishdate': formatDate(videoData.datePublished) || noValue,\n 'videoscreen': 'Normal', // [TODO] make this also show \"Full\"\n 'videostatus': 'Unrestricted',\n 'videosubcat1': videoData?.custom?.videosubcat1 || noValue,\n 'videosubcat2': noValue,\n 'videotitle': videoData.title || noValue,\n 'videomutestate': videoState.isMuted ? 'muted' : 'unmuted' || noValue,\n 'playerVersion': videoData?.custom?.playerVersion || noValue,\n 'videoadblockerdetection': s.cookieRead('i_abd') || noValue,\n 'videonativesponsor': noValue,\n 'videopagestorylines': noValue,\n 'videoplayertestvalue': window.__DY_VIDEO_TEST__?.videoPlayerType || noValue,\n 'videostreamcount': videoData.videoCount || noValue,\n 'videovideocontenttype': videoType,\n 'videocontentrating': videoData.sentiment || noValue,\n 'videovisitorid': visitor.getMarketingCloudVisitorID(),\n 'videoscrollcount': s?.contextData['news?.scrollcount'] || noValue,\n 'videosessionnumber': s?.contextData['news?.sessionnumber'] || noValue,\n 'videoplayercount': $t('jsonLd.NewsArticle.0.video', []).length || noValue,\n 'news.uxexperiment': s?.contextData['news?.uxexperiment'] || noValue,\n 'videopagesubverticalname': $t('jsonLd.Dataset.0.subVertical', noValue),\n 'videopagetemplatename': $t('jsonLd.Dataset.0.packageId', noValue),\n 'videopageverticalname': $t('jsonLd.Dataset.0.vertical', noValue),\n 'videoadditionaltaxonomy': videoData.custom?.additionalTerms?.category || noValue,\n 'subtype': videoData.streamType || noValue,\n };\n\n logEvent(data.eventType, { data: data, contextData: customContextData, state: videoState });\n\n switch (data.eventType) {\n case uniEvent.VIDEO_LOADED:\n if (videoState.playState !== 'stop' && _mediaTracker) {\n _mediaTracker.trackSessionEnd();\n logEvent('SESSION END - VIDEO_LOADED');\n sessionIsStarted = false;\n }\n _appMeasurement.clearVars();\n _appMeasurement.pageName = s.pageName;\n break;\n\n case uniEvent.PLAY:\n logEvent('PLAY', { videoState });\n if (sessionIsStarted === false) {\n startSession(customContextData, videoType);\n logEvent('SESSION START - PLAY');\n sessionIsStarted = true;\n }\n if (videoState.playState !== 'play' && _mediaTracker) {\n _mediaTracker.trackPlay();\n }\n break;\n\n case uniEvent.PAUSE:\n if (_mediaTracker) _mediaTracker.trackPause();\n break;\n\n case uniEvent.SEEK_START:\n if (_mediaTracker) _mediaTracker.trackEvent(Media?.Event?.SeekStart);\n break;\n\n case uniEvent.SEEK_COMPLETE:\n if (_mediaTracker) _mediaTracker.trackEvent(Media?.Event?.SeekComplete);\n break;\n\n case uniEvent.COMPLETE:\n if (_mediaTracker) {\n _mediaTracker.trackComplete();\n _mediaTracker.trackSessionEnd();\n }\n logEvent('SESSION END - COMPLETE');\n sessionIsStarted = false;\n break;\n\n case uniEvent.STOP:\n if (_mediaTracker) _mediaTracker.trackSessionEnd();\n logEvent('SESSION END - STOP');\n sessionIsStarted = false;\n break;\n\n case uniEvent.AD_BREAK_START:\n if (sessionIsStarted === false) {\n startSession(customContextData, videoType);\n logEvent('SESSION START - AD BREAK START');\n sessionIsStarted = true;\n }\n if (_mediaTracker) {\n var adBreakInfo = Media.createAdBreakObject(\n videoData.adPodName || noValue,\n videoState.adBreakPosition,\n videoState.playheadPosition,\n );\n _mediaTracker.trackEvent(Media?.Event?.AdBreakStart, adBreakInfo);\n }\n break;\n\n case uniEvent.AD_BREAK_COMPLETE:\n if (_mediaTracker) _mediaTracker.trackEvent(Media?.Event?.AdBreakComplete);\n break;\n\n case uniEvent.AD_PLAY:\n if (sessionIsStarted === false) {\n startSession(customContextData, videoType);\n logEvent('SESSION START - AD PLAY');\n sessionIsStarted = true;\n }\n if (_mediaTracker) {\n var adLength = Math.round(videoData.adLength) || 0;\n var randomAdId = 'rand_' + ((Math.random() * 36 * 100000) | 0).toString(36);\n var adInfo = Media.createAdObject(\n videoData.adName || noValue,\n videoData.adId || randomAdId,\n videoState.adPosition,\n adLength,\n );\n\n var adMetadata = Object.assign({}, customContextData, {\n 'media.ad.podFriendlyName': videoData.adPodName || noValue,\n 'media.ad.length': roundAdLength(adLength) || 0,\n });\n\n _mediaTracker.trackEvent(Media?.Event?.AdStart, adInfo, adMetadata);\n if (videoState.playState !== 'play') {\n _mediaTracker.trackPlay();\n }\n }\n break;\n\n case uniEvent.AD_COMPLETE:\n if (_mediaTracker) _mediaTracker.trackEvent(Media?.Event?.AdComplete);\n break;\n\n case uniEvent.SEGMENT_START:\n if (_mediaTracker) {\n var chapterInfo = Media.createChapterObject(\n videoData.assetID,\n videoState.segmentPosition,\n -1,\n videoState.playheadPosition,\n );\n _mediaTracker.trackEvent(Media?.Event?.ChapterStart, chapterInfo, {\n segmentType: 'Program',\n segmentName: videoData.assetID,\n });\n }\n break;\n\n case uniEvent.SEGMENT_END:\n if (_mediaTracker) _mediaTracker.trackEvent(Media?.Event?.ChapterComplete);\n break;\n\n case uniEvent?.STATE?.MUTE:\n // https://experienceleague.adobe.com/docs/media-analytics/using/media-use-cases/player-state-tracking/standard-and-custom-states.html?lang=en\n // _mediaHeartbeat.trackEvent('mute', videoState.isMuted, customContextData); //ADB.Media.PlayerState.Mute (this seems like it doesnt work)\n // TODO this customContextData udpate needs to me made so it can compatible with a \"buildMediObject\" structure, so its not a one off here.\n\n // mute state change adobe event.\n // sometimes there is an event as the player configures itself. This will ignore that.\n if (videoState.inAd || videoData.playheadPosition != 0) {\n var isMutedString = videoState.isMuted ? 'muted' : 'unmuted';\n appMtrack('Video Mute Change', {\n 'news.linkmoduledetail': `${isMutedString}`,\n 'news.linkmoduletype': 'video mute change',\n });\n customContextData['videomutestate'] = isMutedString || noValue;\n }\n break;\n\n default:\n break;\n }\n };\n });\n };\n\n if ($t('dtm_adobeAppMeasurmentLoaded', 'not loaded') !== 'not loaded') {\n setupHeartbeat(window.s);\n }\n else {\n $t('on', 'dtm_adobeAppMeasurmentLoaded', function () {\n setupHeartbeat(window.s);\n });\n }\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLabd7598feb3744aeb91a68f8e4c5394b",name:"50 - Action - nf_target_* [d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/* global $t, s */\n(function () {\n\n function trackEvent(eventName, linkName, getActionContextData) {\n $t('on', eventName, function (e, data) {\n\n var actionContextData = getActionContextData(e, data);\n if (!actionContextData) return;\n\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', linkName);\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n });\n }\n\n function stringify(productObj = {}) {\n const { name, listPrice } = productObj;\n return `name:${name},listPrice:${listPrice}`;\n }\n\n var linkName = 'Target Shopping Action';\n var prefix = 'nf_target';\n\n trackEvent(`${prefix}_bag_view_action`, linkName, (e, data) => {\n if (['add_item_to_bag', 'remove_item_from_bag'].includes(data.action)) {\n return {\n 'news.linkmoduledetail': stringify(data.item),\n 'news.linkmoduletype': data.action,\n };\n }\n\n if (['open_bag_view', 'close_bag_view'].includes(data.action)) {\n return {\n 'news.linkmoduledetail': '',\n 'news.linkmoduletype': data.action,\n };\n }\n\n if (['checkout_at_target', 'browse_shopping_lists'].includes(data.action)) {\n return {\n 'news.linkmoduledetail': data.items.map(stringify).join(';'),\n 'news.linkmoduletype': data.action,\n };\n }\n\n if (['increment_quantity', 'decrement_quantity', 'remove_item_from_bag'].includes(data.action)) {\n return {\n 'news.linkmoduledetail': stringify(data.item),\n 'news.linkmoduletype': data.action,\n };\n }\n });\n\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLb232c32e07534b55998af8daa80e425c",name:"50 - Action - newsletter_subscribe [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"\n/* globals $t, s */\n$t('register', 'dtm_emailSubscribe_verification');\n$t('on', 'newsletter_subscribe', function (e) {\n var actionContextData = {\n 'news.newsletteraction': 'Subscribe', //\"Subscribe\", \"Unsubscribe\"\n 'news.newsletterid': $t(e.type + '.id', $t(e.type + '.key', '')),\n 'news.newslettertouchpoint': $t(e.type + '.placement', '')\n };\n s.contextData = s.extendArray(s.contextData, actionContextData);\n\n //track action\n s.tl(true, 'o', 'newsletter_subscribe');\n\n //cleanup values after action\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n\n if (window.Sailthru) {\n const Sailthru = window.Sailthru;\n Sailthru.integration('getCurrentUser', {\n onSuccess: function (response) {\n if (response.emailHash) {\n $t('track', 'dtm_emailSubscribe_verification', { emailhash: response.emailHash });\n }\n }\n });\n }\n});\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLb57ea55d0452432d91ea15a42025d859",name:"50 - Action - mbt_backtotop_click [d:nbcnews.com, d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com","nbcnews.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/* globals $t, s */\n(function () {\n function track(situation, actionContextData) {\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', situation);\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n }\n\n $t('on', 'mbt_backtotop_click', function (_e, { breakpoint, vertical }) {\n track('web notification soft opt in shown', {\n 'news.linkmoduledetail': `${vertical}_${breakpoint}`,\n 'news.linkmoduletype': 'back_to_top_button_clicked',\n });\n });\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLb5b056fcf08141b6845145b86b7686d7",name:"50 - Promotion Pixels - floodlight, fb, tdd, tiktok, twitter [d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"(function () {\n const sites = [\n {\n url: 'www.telemundo.com/shows/vuelve-a-mi',\n urlIncludes: 'vuelve-a-mi',\n ticketNumber: 'AFT-898',\n startDate: '9/18/2023',\n endDate: '10/09/2023',\n scripts: {\n floodLight: {\n campaignId: 'vuelv0/23_090+standard',\n },\n fb: null,\n // pending legal approval\n // fb: {\n // id: '6462323253884374'\n // },\n tiktok: null,\n ttdPixel: null,\n twitter: null,\n }\n },\n ];\n\n const addPixel = (src, name) => {\n var img = document.createElement('img');\n img.setAttribute('style', 'display:none;');\n img.setAttribute('src', src);\n img.setAttribute('name', name+'-pixeltag');\n document.body.appendChild(img);\n };\n\n const scripts = {\n floodLight: (args) => {\n if (!args) return;\n if (!args.campaignId) return;\n\n // Configuring gtag\n window.dataLayer = window.dataLayer || [];\n function gtag() { window.dataLayer.push(arguments); }\n gtag('config', 'DC-8374335');\n gtag('js', new Date());\n\n function sendPageViewEvent() {\n window.$t('on', 'dtm_pageView', function () {\n gtag('event', 'conversion', {\n allow_custom_scripts: true,\n u1: window.$t('jsonLd.Dataset.0.url'),\n send_to: `DC-8374335/${args.campaignId}`,\n });\n });\n }\n\n function sendVideoEvents() {\n window.$t('on', 'ndp_videoEvent', function (e, eventData) {\n var options = {\n allow_custom_scripts: true,\n u2: eventData.videoData.raw.headline.primary, // video name\n u3: '', // start\n u4: '', // complete\n u5: '', // video quartiles\n send_to: `DC-8374335/${args.campaignId}`,\n };\n\n var type = eventData.eventType;\n\n if (type === 'NDP_PlaybackEvent_START' || type === 'NDP_PlaybackEvent_PLAY') {\n options.u3 = 'start';\n }\n\n if (type === 'NDP_PlaybackEvent_COMPLETE') {\n options.u4 = 'complete';\n }\n\n if (options.u3 || options.u4) {\n gtag('event', 'conversion', options);\n }\n });\n }\n\n sendPageViewEvent();\n sendVideoEvents();\n },\n\n ttdPixel: (args) => {\n if (!args) return;\n if (!args.ct) return;\n addPixel(`https://insight.adsrvr.org/track/pxl/?adv=i0pslg1&ct=${args.ct}&fmt=3`, 'the-trade-desk');\n },\n\n fb: (args) => {\n if (!args) return;\n if (!args.id) return;\n\n !function(f,b,e,v,n,t,s)\n {if(f.fbq)return;n=f.fbq=function(){n.callMethod?\n n.callMethod.apply(n,arguments):n.queue.push(arguments);};\n if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\n n.queue=[];t=b.createElement(e);t.async=!0;\n t.src=v;s=b.getElementsByTagName(e)[0];\n s.parentNode.insertBefore(t,s);}(window, document,'script',\n 'https://connect.facebook.net/en_US/fbevents.js');\n\n // Determining if the reader has requested limited data use\n const userHasOptedOut = (function () {\n var usPrivacyCookie = new RegExp('usprivacy=([^;]+)').exec(document.cookie);\n var usPrivacy = (usPrivacyCookie !== null) ? decodeURI(usPrivacyCookie[1]) : undefined;\n return String(usPrivacy).charAt(2) == 'Y';\n })();\n\n if (userHasOptedOut) {\n window.fbq('dataProcessingOptions', ['LDU'], 0, 0);\n }\n\n window.fbq('init', args.id);\n window.fbq('track', 'PageView');\n },\n\n tiktok: (args) => {\n if (!args) return;\n if (!args.id) return;\n\n !function (w, d, t) {\n w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];\n ttq.methods=['page','track','identify','instances','debug','on',\n 'off','once','ready','alias','group','enableCookie','disableCookie'],\n ttq.setAndDefer=function(t,e)\n {\n t[e]=function()\n {\n t.push([e].concat(Array.prototype.slice.call(arguments,0)));\n };\n };\n for(var i=0;i {\n if (!args) return;\n if (!args.id) return;\n\n !function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments);\n },s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='https://static.ads-twitter.com/uwt.js',\n a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a));}(window,document,'script');\n window.twq('config', args.id);\n }\n };\n\n const actualURL = `${location.host}${location.pathname}`;\n\n sites.map((siteConfig, siteIndex) => {\n var isURLMatch = false;\n\n // Checking for URL substring matches\n if (siteConfig.urlIncludes && actualURL.includes(siteConfig.urlIncludes)) {\n isURLMatch = true;\n }\n\n // Checking for exact URL matches\n if (actualURL === siteConfig.url) {\n isURLMatch = true;\n }\n\n if (!isURLMatch) {\n return;\n }\n\n // Skipping if the start date is in the future\n if (new Date() < new Date(siteConfig.startDate)) return;\n\n // Skipping if the end date is in the past\n if (new Date() > new Date(siteConfig.endDate)) return;\n\n const { scripts: siteList } = siteConfig;\n const scriptList = Object.keys(siteList);\n scriptList.forEach((tagName) => {\n const params = sites[siteIndex].scripts[tagName];\n if (typeof params === 'object') scripts[tagName](params);\n });\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLb729650f9663427b90be7158ea99e6fa",name:"50 - Action - dtm_pageView [d:msnbc.com, d:nbcnews.com, d:telemundo.com, d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["telemundo.com","today.com","nbcnews.com","msnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,
source:"/* globals s, $t */\n(function () {\n /* SNIPAF: {\"name\": \"get_brand_by_domain\", \"version\":\"1.0\"} */\n const getBrand = function () {\n //would be better is this wasnt based on domain\n switch (window.s.topLevelDomain) {\n case 'today.com':\n return 'today';\n\n case 'msnbc.com':\n return 'msnbc';\n\n case 'telemundo.com':\n return 'telemundo';\n\n default:\n return 'nbcnews';\n }\n };\n /* SNIPAF: END */\n\n /* SNIPAF: {\"name\": \"hyphen_enabled\", \"version\":\"1.0\"} */\n function isHyphenEnabled() {\n const itemLists = $t('jsonLd.ItemList', []);\n\n return itemLists.some((_itemList, i) => {\n const itemListElements = $t(`jsonLd.ItemList.${i}.itemListElement`, []);\n return itemListElements.some((item, j) => {\n const identifierName = $t(`jsonLd.ItemList.${i}.itemListElement.${j}.identifier.name`);\n const identifierValue = $t(`jsonLd.ItemList.${i}.itemListElement.${j}.identifier.value`);\n return identifierName === 'HyphenId' && identifierValue;\n });\n });\n }\n /* SNIPAF: END*/\n\n var convertDate = function (dateString) {\n //input: 2015-06-04T14:40:45.000+0000, output: 2015-06-04 14:40:45 Z\n var dateObj = new Date(dateString);\n if (dateObj.toString() !== 'Invalid Date') {\n return dateObj.toISOString().replace('T', ' ').replace('.000Z', ' Z');\n } else {\n return dateString;\n }\n };\n\n var checkIfEmbeddedVideo = function () {\n var i, embeddedVideoPaths = [\n /\\/embedded-video\\//,\n /^\\/playmaker\\/embed/,\n /^\\/playmaker\\/autoplayembed/\n ];\n for (i = 0; (embeddedVideoPaths[i]); i++) {\n if (document.location.pathname.search(embeddedVideoPaths[i]) != -1) {\n return true;\n }\n }\n return false;\n };\n\n $t('on', 'dtm_pageView', function (e, data) {\n\n var slug = function () {\n var slug = $t(e.type + '.url').match(/[^/]+(?=(\\/$|\\/index\\.html$)|$)/g) || ['']; //remove index.html for shorthand pages\n return slug[0];\n };\n var pageIndex = $t(e.type + '.index', '0');\n var trackView = data.trackView !== false; //this will default all to true if not false\n\n var contentType = (function () {\n //if its native content, its just native\n if (pageIndex === -1) {\n //if there is an arror loading metadata, page index is -1\n return 'error';\n }\n if ($t('jsonLd.Dataset.' + pageIndex + '.sponsor', false)) {\n return 'native';\n }\n var pageType = $t('jsonLd.Dataset.' + pageIndex + '.pageType', '').toLowerCase(); //only considers the most recent page for now\n if (document.location.pathname.indexOf('/card/') != -1) { //override for legacy card pages\n pageType = 'card';\n } else if (document.location.pathname.indexOf('/author/') != -1) {\n pageType = 'author';\n }\n\n //make pagetype for embedded videos\n if (checkIfEmbeddedVideo()) {\n pageType = 'embedded';\n }\n switch (pageType) {\n case 'article':\n if (document.location.pathname.indexOf('/live-blog/') != -1) { //override for liveblog, this should be represented bby the dataset later\n return 'liveblog';\n } else {\n return 'post';\n }\n case 'author':\n return 'author';\n case 'card':\n return 'card';\n case 'gallery':\n return 'gallery';\n case 'front':\n if ($t(e.type + '.url') === '/') {\n return 'cover';\n } else {\n return 'vertical';\n }\n case 'showpage':\n return 'show';\n case 'sectionfront':\n if ($t(e.type + '.url') === '/' || $t(e.type + '.url') === '/home-new') {\n return 'cover';\n } else {\n return 'subvertical';\n }\n case 'video':\n return 'canonical video';\n case 'embedded':\n return 'embedded video';\n case 'elections':\n return 'elections';\n case 'email':\n return 'email';\n case 'specialpage':\n return 'specialpage';\n case 'notfound':\n case 'internalservererror':\n return 'error';\n case 'search':\n return 'search';\n case 'mynews':\n return 'mynews';\n case 'recipe':\n //FIX bug AF-172\n /* eslint-disable */\n //pretty heavy handed have to wait for __NEXT_DATA__ to load, then re trigger\n if (data.initiator != 'fixRecipeEcommerceEnabled') {\n trackView = false;\n\n function setIntervalX(callback, delay, repetitions, stop) {\n var x = repetitions;\n var intervalID = window.setInterval(function () {\n var lastTry = --x <= 0;\n callback(lastTry, intervalID);\n if (lastTry) {\n window.clearInterval(intervalID);\n }\n }, delay);\n }\n setIntervalX(function (lastTry, intervalID) {\n var fixRecipeEcommerceEnabled = '';\n try {\n fixRecipeEcommerceEnabled = __NEXT_DATA__.props.initialState.recipe.current.ecommerceEnabled;\n } catch (e) { }\n if (typeof fixRecipeEcommerceEnabled === 'boolean' || lastTry) {\n $t('track', 'dtm_pageView', { initiator: 'fixRecipeEcommerceEnabled', trackView: data.trackView, url: data.url, fixRecipeEcommerceEnabled: fixRecipeEcommerceEnabled });\n window.clearInterval(intervalID);\n }\n }, 200, 5);\n }\n //END fix section\n /* eslint-enable */\n return 'canonical recipe';\n case 'start today microsite':\n return 'subvertical'; //aka front\n default:\n return s.noValue;\n }\n })();\n\n //adobe values - clear before each pageview\n s.clearVars();\n\n s.pageName = (function () {\n var pn = getBrand() + ':';\n if (contentType === 'subvertical') {\n //subvertical is weird, adding exception for start today microsite\n if($t('jsonLd.Dataset.' + pageIndex + '.pageType', '').toLowerCase() === 'start today microsite'){\n pn += $t('jsonLd.Dataset.' + pageIndex + '.vertical', s.noValue) + ':' + contentType + ':starttoday:' + $t('jsonLd.Dataset.' + pageIndex + '.section', s.noValue);\n }else{\n pn += $t('jsonLd.Dataset.' + pageIndex + '.vertical', s.noValue) + ':' + contentType + ':' + slug();\n }\n } else if (contentType === 'cover' && $t('jsonLd.Dataset.' + pageIndex + '.vertical', s.noValue) === 'news') {\n //Temporary change to identify bento cover in Omniture\n pn += contentType + ':new';\n } else if (contentType === 'cover' || contentType === 'search') {\n pn += contentType;\n } else {\n pn += contentType + (slug() ? (':' + slug()) : '');\n }\n return pn;\n })();\n s.contextData = {\n 'news.contenttype': contentType,\n 'news.contentcategory': (function () { // section\n if (contentType === 'cover') {\n return contentType;\n } else {\n return $t('jsonLd.Dataset.' + pageIndex + '.section', s.noValue);\n }\n })(),\n 'news.subcat1': $t('jsonLd.Dataset.' + pageIndex + '.subSection', s.noValue),\n //'news.breakingnews':s.noValue, // 'True' on TODAY, URL on NBCNews\n //'news.contentsource':s.noValue,\n 'news.nativesponsor': $t('jsonLd.Dataset.' + pageIndex + '.sponsor', s.noValue),\n 'news.subverticalname': $t('jsonLd.Dataset.' + pageIndex + '.subVertical', s.noValue),\n 'news.templatename': $t('jsonLd.Dataset.' + pageIndex + '.packageId', s.noValue),\n 'news.verticalname': $t('jsonLd.Dataset.' + pageIndex + '.vertical', s.noValue),\n 'news.ecommerceenabled': $t('jsonLd.Dataset.' + pageIndex + '.ecommerceEnabled', data.fixRecipeEcommerceEnabled || ''),\n 'news.gatedcontentenabled': $t('jsonLd.Dataset.' + pageIndex + '.gatedContentEnabled') ? 'true' : 'false',\n 'news.hyphenenabled': isHyphenEnabled() ? 'true' : 'false',\n //test for ldjson loading multiple times from react-helmet\n 'news.jsonld': $t('jsonLd.Dataset', []).length\n };\n\n // switch on contentType\n switch (contentType) {\n case 'post':\n case 'liveblog':\n case 'card':\n case 'native':\n //article index for multi-type content\n var articleIndex = $t('jsonLd.Dataset', []).reduce(function (acum, curE, curI) {\n var pageType = curE.pageType && curE.pageType.toLowerCase();\n if (curI <= pageIndex && pageType === 'article') {\n return acum + 1;\n } else {\n return acum;\n }\n\n }, -1);\n articleIndex = articleIndex === -1 ? 0 : articleIndex;\n s.contextData = s.extendArray(s.contextData, {\n 'news.docid': $t('jsonLd.NewsArticle.' + articleIndex + '.identifier.value', s.noValue),\n //'news.videoplayercount': $t('jsonLd.NewsArticle.' + articleIndex + '.video', []).length || s.noValue, //ldjson video removed for now\n 'news.videoplayercount': $t('jsonLd.Dataset.' + pageIndex + '.videoPlayerCount', s.noValue),\n 'news.origpagepublishdate': convertDate($t('jsonLd.NewsArticle.' + articleIndex + '.datePublished', s.noValue)),\n 'news.shortsummary': $t('jsonLd.NewsArticle.' + articleIndex + '.description', s.noValue),\n 'news.show': s.noValue, //[TODO] need this from video objects\n 'news.storylines': s.noValue, //[TODO] need this from video objects\n 'news.modpagepublishdate': convertDate($t('jsonLd.NewsArticle.' + articleIndex + '.dateModified', s.noValue)), // 2017-08-17T16:40:53.000Z\n 'news.author': $t('jsonLd.NewsArticle.' + articleIndex + '.author.0.name', s.noValue),\n 'news.headline': $t('jsonLd.NewsArticle.' + articleIndex + '.headline', s.noValue),\n 'news.label': $t('jsonLd.Dataset.' + articleIndex + '.label', s.noValue),\n 'news.additionaltaxonomy': $t('jsonLd.NewsArticle.' + articleIndex + '.keywords', s.noValue) + '' //should be a string later, but need to convert now\n });\n break;\n case 'inline vertical':\n case 'vertical':\n break;\n case 'subvertical':\n break;\n case 'show':\n s.contextData = s.extendArray(s.contextData, {\n 'news.subverticalname': s.noValue, //subvertical is wrong in the template\n 'news.contentcategory': $t('jsonLd.Dataset.' + pageIndex + '.section', slug()) //using slug as show name\n });\n break;\n case 'gallery':\n // indexing set to 0, non dynamic\n s.contextData = s.extendArray(s.contextData, {\n 'news.docid': $t('jsonLd.imageGallery.0.identifier.value', s.noValue),\n 'news.origpagepublishdate': convertDate($t('jsonLd.imageGallery.0.dateModified', s.noValue)),\n 'news.shortsummary': $t('jsonLd.imageGallery.0.description', s.noValue), // [TODO] not sure if this is headline?\n 'news.modpagepublishdate': convertDate($t('jsonLd.imageGallery.0.dateModified', s.noValue)), // 2017-08-17T16:40:53.000Z\n 'news.author': $t('jsonLd.imageGallery.0.author.0.name', s.noValue),\n 'news.slideshowname': $t('jsonLd.imageGallery.0.headline', s.noValue),\n 'news.headline': $t('jsonLd.imageGallery.0.headline', s.noValue)\n });\n break;\n case 'canonical video':\n // indexing set to 0, non dynamic\n s.contextData = s.extendArray(s.contextData, {\n 'news.contentcategory': 'video', //section is hard coded\n 'news.modpagepublishdate': convertDate($t('jsonLd.NewsArticle.0.dateModified', s.noValue)), // 2017-08-17T16:40:53.000Z\n 'news.origpagepublishdate': convertDate($t('jsonLd.NewsArticle.0.datePublished', s.noValue))\n });\n break;\n }\n //track paegview, or only set pageview values\n if (trackView) {\n s.t();\n }\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLbc45a6558ea74f60846f5566d49ba41d",name:"50 - Branch - library [d:nbcnews.com, d:msnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["nbcnews.com","msnbc.com"]},timeout:2e3},{modulePath:"core/src/lib/conditions/pathAndQuerystring.js",settings:{paths:[{value:"/embedded-video/",valueIsRegex:!0},{value:"/embedded-newsletter/",valueIsRegex:!0},{value:"/playmaker/embed",valueIsRegex:!0}]},negate:!0,timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/* global _satellite, branch, $t, s */\n(function () {\n var logEvent = window.BI?.console?.build('branch') ?? Function.prototype;\n\n var isProd = () => Boolean(\n _satellite?.environment?.stage === 'production' && document.location.host.indexOf('uat.') === -1\n );\n\n // Sets the 'branch' window variable\n (function (b, r, a, n, c, h, _, s, d, k) {\n if (!b[n] || !b[n]._q) {\n for (; s < _.length; ) c(h, _[s++]);\n d = r.createElement(a);\n d.async = 1;\n d.src = 'https://cdn.branch.io/branch-latest.min.js';\n k = r.getElementsByTagName(a)[0];\n k.parentNode.insertBefore(d, k);\n b[n] = h;\n }\n })(\n window,\n document,\n 'script',\n 'branch',\n function (b, r) {\n b[r] = function () {\n b._q.push([r, arguments]);\n };\n },\n { _q: [], _v: 1 },\n 'addListener applyCode autoAppIndex banner closeBanner closeJourney creditHistory credits data deepview deepviewCta first getCode init link logout redeem referrals removeListener sendSMS setBranchViewData setIdentity track validateCode trackCommerceEvent logEvent disableTracking'.split(\n ' ',\n ),\n 0,\n );\n\n var branchKeys = {\n 'nbcnews.com': {\n dev: 'key_test_jlM6CmXnvwa9jp4CmPsKGahbDzpCP4uH',\n prod: 'key_live_bmS4ym2cDBm2ge4BjKwILcjeCvnyQ3v3',\n },\n 'msnbc.com': {\n dev: 'key_test_oqhrH7yUaV8k7pnk2szY8ddbswmpw0a6',\n prod: 'key_live_fxpFNYyMpPYm3bpk1qrZRgcfrtent4bR',\n },\n };\n\n var keys = branchKeys[s.topLevelDomain];\n\n var isiOSWebView = /(NBCNews|MSNBC)_iOS_[v0-9.]/.test(navigator.userAgent);\n var isAndroidWebView = /(NBCNews|MSNBC)_Android_[v0-9.]/.test(navigator.userAgent);\n\n var no_journeys = isiOSWebView || isAndroidWebView ? true : false;\n\n if (isProd()) {\n branch.init(keys.prod, { no_journeys: no_journeys }, (err) => {\n if (err) logEvent('error initializing Branch in prod', err);\n });\n } else {\n branch.init(keys.dev, { no_journeys: no_journeys }, (err) => {\n if (err) logEvent('error initializing Branch in dev', err);\n });\n }\n\n var mParticleQueryResult = window?.BI?.userInfo.get('mpid') || 'not_available';\n\n if (mParticleQueryResult !== 'not_available') {\n // In this case, mParticle_setIdResolved has already loaded, and the mpid is available if queried\n branch.setIdentity(mParticleQueryResult, (err) => {\n if (err) logEvent('error setting Branch identity', err);\n });\n } else {\n // mParticle_setIdResolved has not yet been tracked, and we want to listen for it\n $t('on', 'mParticle_setIdResolved', (e, eventData) => {\n branch.setIdentity(eventData.mpid, (err) => {\n if (err) logEvent('error setting Branch identity', err);\n });\n });\n }\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/* globals branch */\n(function () {\n let {\n host,\n pathname\n } = document.location;\n\n if (\n host.includes('nbcnews.com') &&\n pathname.includes('/politics')\n ) {\n var delayMs = 5000;\n\n setTimeout(() => {\n branch.closeJourney((err, data) => {\n /* eslint-disable-next-line no-console */\n if (err) console.log(err, data);\n\n // We want to run this regardless if whether or not the closeJourney errored out\n setTimeout(() => {\n /*\n This key/value pair is entirely arbitrary.\n Its only purpose is to be found by a condition specified in the Branch dashboard.\n */\n branch.track('pageview', {\n // Convert to seconds\n delay: delayMs / 1000,\n });\n }, 1000);\n });\n }, delayMs);\n }\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLbc76df7c4b584bfa9253a1b3854b8bd4",name:"DR - Taboola - web notifications [d:telemundo.com]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RCd0ec9251cb414b229b3b6913f33a117e-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RLbc827bdb0dcd4a02aa16c924287fc187",name:"50 - mParticle - pageView [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals $t, BI */\n(function () {\n /* SNIPAF: {\"name\": \"get_brand_by_domain\", \"version\":\"1.0\"} */\n const getBrand = function () {\n //would be better is this wasnt based on domain\n switch (window.s.topLevelDomain) {\n case 'today.com':\n return 'today';\n\n case 'msnbc.com':\n return 'msnbc';\n\n case 'telemundo.com':\n return 'telemundo';\n\n default:\n return 'nbcnews';\n }\n };\n /* SNIPAF: END */\n\n /* SNIPAF: {\"name\": \"hyphen_enabled\", \"version\":\"1.0\"} */\n function isHyphenEnabled() {\n const itemLists = $t('jsonLd.ItemList', []);\n\n return itemLists.some((_itemList, i) => {\n const itemListElements = $t(`jsonLd.ItemList.${i}.itemListElement`, []);\n return itemListElements.some((item, j) => {\n const identifierName = $t(`jsonLd.ItemList.${i}.itemListElement.${j}.identifier.name`);\n const identifierValue = $t(`jsonLd.ItemList.${i}.itemListElement.${j}.identifier.value`);\n return identifierName === 'HyphenId' && identifierValue;\n });\n });\n }\n /* SNIPAF: END*/\n\n $t('on', 'dtm_pageView', function (e, data) {\n var slug = function () {\n var slug = $t(e.type + '.url').match(/[^/]+(?=\\/$|$)/g) || '';\n return slug.toString();\n };\n\n var noValue = 'not available';\n\n var checkIfEmbeddedVideo = function () {\n var i,\n embeddedVideoPaths = [/\\/embedded-video\\//, /^\\/playmaker\\/embed/];\n for (i = 0; embeddedVideoPaths[i]; i++) {\n if (document.location.pathname.search(embeddedVideoPaths[i]) != -1) {\n return true;\n }\n }\n return false;\n };\n\n var convertDate = function (dateString) {\n //input: 2015-06-04T14:40:45.000+0000, output: 2015-06-04 14:40:45 Z\n var dateObj = new Date(dateString);\n if (dateObj.toString() !== 'Invalid Date') {\n return dateObj.toISOString().replace('T', ' ').replace('.000Z', ' Z');\n } else {\n return dateString;\n }\n };\n\n var contentType = (function () {\n if ($t('jsonLd.Dataset.0.sponsor', false)) {\n return 'native';\n }\n var pageType = $t('jsonLd.Dataset.0.pageType', '').toLowerCase(); //only considers the most recent page for now\n\n if (document.location.pathname.indexOf('/card/') !== -1) {\n //override for legacy card pages\n pageType = 'card';\n }\n //make pagetype for embedded videos\n if (checkIfEmbeddedVideo()) {\n pageType = 'embedded';\n }\n switch (pageType) {\n case 'article':\n if (document.location.pathname.indexOf('/live-blog/') != -1) {\n //override for liveblog, this should be represented bby the dataset later\n return 'liveblog';\n } else {\n return 'post';\n }\n case 'card':\n return 'card';\n case 'gallery':\n return 'gallery';\n case 'front':\n if ($t(e.type + '.url') === '/') {\n return 'cover';\n } else if ($t(e.type + '.initiator') === 'transporter') {\n return 'inline vertical';\n } else {\n return 'vertical';\n }\n case 'showpage':\n return 'show';\n case 'subfront': //i think 'SubFront' is gone?\n case 'sectionfront':\n return 'subvertical';\n case 'video':\n return 'canonical video';\n case 'embedded':\n return 'embedded video';\n case 'notfound':\n case 'internalservererror':\n return 'error';\n default:\n return noValue;\n }\n })();\n\n var pageName = (function () {\n var pn = getBrand() + ':';\n if (contentType === 'subvertical') {\n //subvertical is weird\n pn += $t('jsonLd.Dataset.0.vertical', noValue) + ':' + contentType + ':' + slug();\n } else if (contentType === 'inline vertical') {\n //urls dont change, so slug is not right\n pn += contentType + ':' + $t('jsonLd.Dataset.0.vertical', noValue);\n } else if (contentType === 'cover' && $t('jsonLd.Dataset.0.vertical', noValue) === 'news') {\n //Temporary change to identify bento cover in Omniture\n pn += contentType + ':new';\n } else {\n pn += contentType + (slug() ? ':' + slug() : '');\n }\n return pn;\n })();\n\n var pageSection = (function () {\n if ($t('jsonLd.Dataset.0.pageType', '').toLowerCase() === 'front') {\n return contentType;\n } else {\n return $t('jsonLd.Dataset.0.section', noValue);\n }\n })();\n\n var mParticlePageViewData = {\n 'page name': pageName,\n 'page type': contentType,\n 'page section': pageSection,\n 'topic': noValue,\n 'sub topic': $t('jsonLd.Dataset.0.subSection', noValue),\n 'headline': $t('jsonLd.NewsArticle.' + 0 + '.headline', noValue),\n 'label': $t('jsonLd.Dataset.0.label', noValue),\n 'short summary': $t('jsonLd.NewsArticle.' + 0 + '.description', noValue),\n 'author': $t('jsonLd.NewsArticle.' + 0 + '.author.0.name', noValue),\n 'page publish date': convertDate($t('jsonLd.NewsArticle.' + 0 + '.datePublished', noValue)),\n 'page modified date': convertDate($t('jsonLd.NewsArticle.' + 0 + '.dateModified', noValue)),\n 'article id': $t('jsonLd.NewsArticle.' + 0 + '.identifier.value', noValue),\n 'tags': noValue,\n 'show': noValue,\n 'previous url': document.referrer || noValue,\n 'hyphen enabled': isHyphenEnabled() ? 'true' : 'false'\n };\n // gallery pages have a different data object\n if (contentType === 'gallery') {\n mParticlePageViewData['article id'] = $t('jsonLd.imageGallery.0.identifier.value', noValue);\n mParticlePageViewData['page publish date'] = convertDate(\n $t('jsonLd.imageGallery.0.dateModified', noValue)\n );\n mParticlePageViewData['page modified date'] = convertDate(\n $t('jsonLd.imageGallery.0.dateModified', noValue)\n );\n mParticlePageViewData['author'] = $t('jsonLd.imageGallery.0.author.0.name', noValue);\n mParticlePageViewData['headline'] = $t('jsonLd.imageGallery.0.headline', noValue);\n }\n\n var trackView = data.trackView !== false; //want to make sure its the right page view event\n\n if (window.$t && trackView) {\n BI.dependsOn(['mParticle']).then(() => {\n window.$t('track', 'mParticle_track_event', {\n eventName: 'Page View',\n eventType: 'Navigation',\n eventData: mParticlePageViewData,\n });\n });\n }\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLbf45cbf7e6974d1d9bee9812aca66f1b",name:"50 - Action - nfrec_* [d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/* global $t, s */\n(function () {\n function trackEvent(eventName, getActionContextData, linkName = 'Recipe Shop Action') {\n $t('on', eventName, function (e, data) {\n var actionContextData = getActionContextData(e, data);\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', linkName);\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n });\n }\n\n function commaSeparateIngredientIds(ingredients) {\n var ingredientList = '';\n if (ingredients && Array.isArray(ingredients)) {\n ingredientList = ingredients.map((ing) => ing.item_id).join(',');\n }\n return ingredientList;\n }\n\n trackEvent('nfrec_toggle_cart', (e, data) => ({\n 'news.linkmoduledetail': `${data.action}`,\n 'news.linkmoduletype': 'cart toggle',\n }));\n\n trackEvent('nfrec_add_recipe', (e, data) => ({\n 'news.linkmoduledetail': `${data.recipeID}, ${data.buttonLocation}, ${commaSeparateIngredientIds(data.ingredients)}`,\n 'news.linkmoduletype': 'recipe add',\n }));\n\n trackEvent('nfrec_remove_recipe', (e, data) => ({\n 'news.linkmoduledetail': `${data.recipeID}, ${commaSeparateIngredientIds(data.ingredients)}`,\n 'news.linkmoduletype': 'recipe remove',\n }));\n\n trackEvent('nfrec_add_ingredient', (e, data) => ({\n 'news.linkmoduledetail': `${data.ingredientID}`,\n 'news.linkmoduletype': 'ingredient add',\n }));\n\n trackEvent('nfrec_increment_ingredient_quantity', (e, data) => ({\n 'news.linkmoduledetail': `${data.ingredientID}, ${data.newQuantity}`,\n 'news.linkmoduletype': 'ingredient increment',\n }));\n\n trackEvent('nfrec_decrement_ingredient_quantity', (e, data) => ({\n 'news.linkmoduledetail':`${data.ingredientID}, ${data.newQuantity}`,\n 'news.linkmoduletype': 'ingredient decrement',\n }));\n\n trackEvent('nfrec_set_ingredient_quantity', (e, data) => ({\n 'news.linkmoduledetail': `${data.ingredientID}, ${data.newQuantity}`,\n 'news.linkmoduletype': 'ingredient quantity set',\n }));\n\n trackEvent('nfrec_click_checkout', (e, data) => ({\n 'news.linkmoduledetail': `${data.cartValueInCents}, ${commaSeparateIngredientIds(data.ingredients || data.Ingredient)}`,\n 'news.linkmoduletype': 'checkout click',\n }));\n\n trackEvent('nfrec_click_walmart', (e, data) => ({\n 'news.linkmoduledetail': `${data.cartValueInCents}, ${commaSeparateIngredientIds(data.ingredients || data.Ingredient)}`,\n 'news.linkmoduletype': 'walmart checkout click',\n }));\n\n trackEvent('nfrec_click_portions', () => ({\n 'news.linkmoduledetail': '',\n 'news.linkmoduletype': 'portion click',\n }));\n\n trackEvent('nfrec_click_swap', () => ({\n 'news.linkmoduledetail': '',\n 'news.linkmoduletype': 'ingredient swap',\n }));\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLbff3f16ff38048489e22d144a94f310b",name:"DR - BizDev - Dynata tag [d:msnbc.com, d:nbcnews.com, d:today.com]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com","nbcnews.com","msnbc.com"]},timeout:2e3},{modulePath:"core/src/lib/conditions/pathAndQuerystring.js",settings:{paths:[{value:"/embedded-video/",valueIsRegex:!0}]},negate:!0,timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RC5253be5ca58840bea782be55fa0efecf-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RLc498f8405245401b9706e25e32ae6d14",name:"50 - Action - dtm_click_track [d:nbcnews.com, d:msnbc.com, d:telemundo.com, d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"(function () {\n /*global $t */\n $t('register', 'dtm_click_track');\n const getClosestAttVal = (el, attName) => el ? el.closest(`[${attName}]`)?.getAttribute(attName) || '' : '';\n\n let passiveSupported = false;\n\n try {\n const options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n };\n\n // test event listener for feature detection to support the passive event\n window.addEventListener('testPassiveSupport', null, options);\n window.removeEventListener('testPassiveSupport', null, options);\n } catch (err) {\n passiveSupported = false;\n }\n\n function buildEventData(targetElement) {\n return {\n localName: targetElement.localName,\n classes: targetElement.className,\n closestDivClasses: targetElement.closest('div') ? targetElement.closest('div').className : '',\n innerText: targetElement.innerText ? targetElement.innerText.slice(0, 64) : '',\n closestAnchorHref: targetElement.closest('a') ? targetElement.closest('a').href : '',\n closestAnchorDataset: targetElement.closest('a') ? targetElement.closest('a').dataset : {},\n icid: getClosestAttVal(targetElement, 'data-icid'),\n activityMap: getClosestAttVal(targetElement, 'data-activity-map'),\n };\n }\n\n window.addEventListener('click', function (e) {\n let t = e.target;\n const eventData = buildEventData(t);\n setTimeout(() => {\n $t('track', 'dtm_click_track', eventData);\n });\n },\n passiveSupported ? {passive: true} : false //if passiveSupported is false then we default useCapture option to false\n );\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLc619dd150b8d40c197f07c47470a7962",name:"DR - Parsely Conversion [d:nbcnews.com, d:today.com, regex_path]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["nbcnews.com","today.com"]},timeout:2e3},{modulePath:"core/src/lib/conditions/pathAndQuerystring.js",settings:{paths:[{value:"/select/*",valueIsRegex:!0},{value:"/shop/*",valueIsRegex:!0}]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RC122801217467489bb36b938e876f8e1e-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RLc7148827787e47d482c5eff4aa5e1531",name:"DR - Anthem Tag [d:today.com, d:nbcnews.com, d:msnbc.com]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com","nbcnews.com","msnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RC8a9f77140f524121977cce01395f4a38-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RLdb6b901fd8254669a9a4811c1a98f4f7",name:"DR - Action - piano events [d:nbcnews.com, d:today.com]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["nbcnews.com","today.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RCfa2b500f3a6341258f96da59955bd26e-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RLe1180db4765f4688bb3ee60eda29287c",name:"50 - BizDev - Data Plus Math tag [d:msnbc.com, d:today.com, d:nbcnews.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{
domains:["msnbc.com","today.com","nbcnews.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"(function () {\n var loadedScripts = {};\n var dpmAddress = 'https://c.tvpixel.com/js/current/dpm_pixel_min.js?aid=nbcu-3dcc5105-25e1-45bf-9fba-c85842909d0d';\n var loadScript = function (address) {\n if (address && !loadedScripts[address]) {\n var head = document.getElementsByTagName('head')[0];\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = address;\n head.appendChild(script);\n loadedScripts[address] = true;\n }\n };\n \n $t('on', 'dtm_pageView', function (e, data) {\n var trackView = data.trackView !== false; //this will default all to true if not false\n if (trackView) {\n loadScript(dpmAddress);\n }\n });\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLe3c03f04308e46bc8ca5e295002a2e39",name:"50 - Action - mbt_video_drawer_click [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"\n/* globals $t, s */\n$t('on', 'mbt_video_drawer_click', function(e) {\n var isCountinuousPlay = $t('mbt_video_drawer_click.video.isContinuousPlay', false);\n if(isCountinuousPlay) {\n //Continuous play event is not tracked at the moment\n //Could be used in the future to track using this flag\n return;\n }\n var videoIndex = parseInt($t(e.type + '.index', 0)) + 1;\n var videoId = $t(e.type + '.video.id', 'not available');\n var videoName = $t(e.type + '.video.headline.primary', 'not available');\n\n var actionContextData = {\n 'news.linkmoduledetail': `${videoIndex}:${videoId}:${videoName}`,\n 'news.linkmoduletype': 'video drawer click',\n 'news.videoplaylist': $t(e.type + '.playlist.headline.primary', s.noValue),\n 'news.videoplaylistid': $t(e.type + '.playlist.id', s.noValue)\n };\n s.contextData = s.extendArray(s.contextData, actionContextData);\n\n //track action\n s.tl(true, 'o', 'video drawer click');\n\n //cleanup values after action\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n});\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLe5c8a521ea2743c18b56441d0523eabe",name:"50 - mParticle - $t tracking [d:today.com, d:msnbc.com, d:nbcnews.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com","msnbc.com","nbcnews.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals $t, BI */\n\n/**\n * checks the event name with the exclude list\n * Params:\n ** { trackingEvent }: object with event info\n * Return:\n ** { boolean }: True if we should skip this event and False if we want to track it\n */\n(function () {\n function exclude(trackingEvent) {\n switch (trackingEvent.eventType) {\n case ('ndp_videoEvent'):\n case ('uni_videoEvent'):\n return true; // for now just exclude all video events\n case ('mParticle_track_event'):\n case ('dtm_pageView'):\n case ('ndp_playerInit'):\n case ('playMaker_init'):\n case ('ramen_authflow'):\n // Exclude PII / sensitive events\n case ('piano_event'):\n case ('hfs_identity_init'):\n case ('hfs_identity_state'):\n case ('hfs_identity_result'):\n return true;\n default:\n return false;\n }\n }\n\n if (window.$t) {\n $t('bindTrack', function (e, trackingEvent) {\n // check if the event is one that we want to exclude\n if (exclude(trackingEvent)) {\n return;\n }\n\n // prefix data, and remove objects\n var prefedData = (function (data) {\n var tmp = {};\n var keys = Object.keys(data);\n for (var j = 0; j < keys.length; j++) {\n var key = '$t ' + keys[j];\n if (typeof data[keys[j]] !== 'object') {\n tmp[key] = data[keys[j]];\n }\n }\n return tmp;\n })(trackingEvent.eventData);\n\n var eventName = (trackingEvent && trackingEvent.eventType) || '';\n BI.dependsOn(['mParticle']).then(() => {\n window.$t('track', 'mParticle_track_event', { eventName: '$t ' + eventName, eventType: 'Navigation', eventData: prefedData });\n });\n });\n }\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLe619f50b4f584fc587582e3010467477",name:"60 - univideo - product adapter (streamsense) [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:60}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals BI, ns_, uniVideo */\n(function () {\n BI.dependsOn(['s', 'ns_']).then(setupStreamsenseAdapter);\n\n function setupStreamsenseAdapter() {\n var _publisherId = '6035083';\n var _sa = null;\n var analytics = window.analytics = ns_.analytics;\n\n // Setting up BI console log functions\n var logEvent = (window.BI && BI.console && BI.console.build('uni_streamsense')) || Function.prototype;\n // determine show name from various asset metadata\n var deriveShowName = function (videoData) {\n var showNameOverrides = {\n 'Deadline: White House': 'deadlinewhitehouse',\n 'MTP Daily': 'meetthepress',\n 'Dateline Digital': 'dateline',\n 'TODAY': 'todayallday',\n };\n\n // select show name from source field\n var showName = videoData.source;\n\n // For VOD, derive show name from taxonomy if present\n if (videoData.streamType === 'vod') {\n var taxonomyShowTerms = videoData.custom?.taxonomy?.additionalTerms?.filter((term) => {\n return term.taxonomyType === 'show';\n });\n // select the first show name present in taxonomy\n if (taxonomyShowTerms && taxonomyShowTerms?.length != -1 && taxonomyShowTerms[0]?.name) {\n showName = taxonomyShowTerms[0].name;\n }\n }\n\n // return override if it exists, or format existing string\n return showNameOverrides[showName] || showName.replaceAll(' ', '').toLowerCase();\n };\n\n var sites = {\n 'today.com': {\n st: 'Today',\n pu: 'Today',\n c4: 'today',\n c6Default: 'today',\n },\n 'nbcnews.com': {\n st: 'NBC News',\n pu: 'NBC News',\n c4: 'nbcnews',\n c6Default: 'nbcnews',\n },\n 'msnbc.com': {\n st: 'MSNBC',\n pu: 'MSNBC',\n c4: 'msnbc',\n c6Default: 'msnbc',\n },\n 'telemundo.com': {\n st: 'Telemundo',\n pu: 'Telemundo',\n c3: 'Telemundo',\n c4: 'telemundo',\n c6Default: 'telemundo',\n },\n };\n\n uniVideo.addEventListenerFactory(function streamsense() {\n var uniEvent = (window.uniVideo && window.uniVideo.event) || {};\n var sa = null;\n var cm = {}; // content metadata\n var am = {}; // asset metadata\n var noValue = '*null';\n var sessionIsActive = false;\n var isPaused = false;\n var _siteBrand = (() => {\n for (let domainName of Object.keys(sites)) {\n if (window.s.topLevelDomain.includes(domainName)) {\n return sites[domainName];\n }\n }\n })();\n\n function maybeNotifyPlay() {\n if (!sa || typeof sa.notifyPlay !== 'function') return;\n if (sessionIsActive && !isPaused) return;\n sessionIsActive = true;\n sa.notifyPlay();\n }\n\n return function eventListener(e, data) {\n // streamsense doesnt use playhead aperently, so progress not needed\n if (data.eventType === uniEvent.PROGRESS) return;\n\n // Check if analytics is initialized and has required properties\n if (!analytics || !analytics.StreamingAnalytics || !analytics.StreamingAnalytics.ContentMetadata || !analytics.StreamingAnalytics.ContentMetadata.ContentType) {\n // Try to get analytics from window if not available locally\n analytics = window.analytics;\n if (!analytics || !analytics.StreamingAnalytics || !analytics.StreamingAnalytics.ContentMetadata || !analytics.StreamingAnalytics.ContentMetadata.ContentType) {\n return;\n }\n }\n if (_sa === null) {\n var appName\n = {\n nbcnews: 'NBC News',\n msnbc: 'MSNBC',\n today: 'Today',\n }[data.appBrand] || 'NBC News';\n analytics.PlatformApi.setPlatformAPI(analytics.PlatformApi.PlatformApis.Skeleton, data.platformApi);\n\n var publisherConfig = new analytics.configuration.PublisherConfiguration({ publisherId: _publisherId });\n analytics.configuration.addClient(publisherConfig);\n analytics.configuration.setApplicationName(appName + ' ' + data.c3);\n analytics.start();\n\n _sa = window.sa = new analytics.StreamingAnalytics();\n logEvent('StreamingAnalytics initialized', { publisherId: _publisherId });\n }\n if (sa == null && window.sa) sa = window.sa;\n\n var videoData = (data && data.videoData) || {};\n var videoState = (data && data.videoState) || {};\n var streamContentType;\n if (videoData.streamType === 'linear') {\n streamContentType = analytics.StreamingAnalytics.ContentMetadata.ContentType.LIVE;\n }\n else {\n if (videoData.duration < 600) { // 10 minutes in seconds\n streamContentType = analytics.StreamingAnalytics.ContentMetadata.ContentType.SHORT_FORM_ON_DEMAND;\n }\n else {\n streamContentType = analytics.StreamingAnalytics.ContentMetadata.ContentType.LONG_FORM_ON_DEMAND;\n }\n }\n\n switch (data.eventType) {\n case uniEvent.VIDEO_LOADED: {\n sessionIsActive = false;\n isPaused = false;\n\n sa.createPlaybackSession();\n\n logEvent('new streamingTag');\n updateMetadata(videoData, streamContentType);\n\n sa.setMetadata(cm);\n break;\n }\n case uniEvent.PLAY: {\n if (!sa || videoState.inAd) break;\n sa.setMetadata(cm);\n maybeNotifyPlay();\n logEvent('play', cm);\n break;\n }\n case uniEvent.AD_BREAK_START: {\n break;\n }\n case uniEvent.AD_PLAY: {\n am = new analytics.StreamingAnalytics.AdvertisementMetadata();\n am.setMediaType(\n videoData.streamType === 'linear'\n ? analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.LIVE\n : analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.ON_DEMAND_PRE_ROLL,\n );\n\n am.setRelatedContentMetadata(cm);\n am.setUniqueId(videoData.adId);\n am.setLength(videoData.adLength);\n am.setTitle(videoData.adName);\n sa.setMetadata(am);\n maybeNotifyPlay();\n logEvent('play ad', am);\n break;\n }\n case uniEvent.AD_COMPLETE: {\n logEvent('stop ad', am);\n am = {};\n break;\n }\n case uniEvent.AD_BREAK_COMPLETE: {\n sa.setMetadata(cm);\n logEvent('play', cm);\n break;\n }\n case uniEvent.PAUSE:\n sa.notifyPause();\n isPaused = true;\n break;\n case uniEvent.STOP:\n case uniEvent.COMPLETE: {\n sa.notifyEnd();\n logEvent('stop', cm);\n break;\n }\n }\n };\n\n function updateMetadata(videoData, streamContentType) {\n var videoLength = (function () {\n if (videoData.streamType === 'linear') {\n var isSingleLiveEvent = /^lv_/.test(videoData.guid) || videoData.videoType === 'nonBroadcastLiveVideo';\n var isJWPlayer = 'JW Player' == videoData.playbackAdapter;\n return isSingleLiveEvent && isJWPlayer ? 0 : -1;\n }\n else {\n // Convert seconds to milliseconds, handle null/undefined\n return (typeof videoData.duration === 'number') ? videoData.duration * 1000 : 0;\n }\n })();\n\n cm = new analytics.StreamingAnalytics.ContentMetadata();\n cm.setMediaType(streamContentType);\n cm.setUniqueId(videoData.guid || '0');\n cm.setLength(videoLength);\n cm.setStationTitle(_siteBrand.st || noValue);\n cm.setPublisherName(_siteBrand.pu || noValue);\n cm.setProgramTitle(videoData.source || noValue);\n cm.setEpisodeTitle(videoData.title || noValue);\n cm.setEpisodeNumber(noValue);\n cm.setEpisodeSeasonNumber(noValue);\n cm.setGenreName('News');\n cm.classifyAsCompleteEpisode(0);\n cm.setDictionaryClassificationC3(_siteBrand.c3 || noValue);\n cm.setDictionaryClassificationC4(_siteBrand.c4 || noValue);\n cm.setDictionaryClassificationC6(deriveShowName(videoData) || _siteBrand.c6Default || noValue);\n }\n });\n }\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLe6415134c91943ad8b661d9acab4d46e",name:"50 - Conviva Library [d:msnbc.com, d:nbcnews.com, d:telemundo.com, d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{
source:"/*!******************\nConviva Conviva\nVersion: 4.0.39\nBuilt: 2023-06\n*********************/\n\n/* eslint-disable */\n\n!function(t,n){'function'===typeof define&&define.amd?define(n):('object'===typeof exports||'object'===typeof module&&module.exports)&&(module.exports=n()),'undefined'===typeof t||!t||t.Conviva||t.ConvivaLoading||(t.ConvivaLoading=!0,t.Conviva=n(),delete t.ConvivaLoading);}(this,function(){var lt={};return function(){'use strict';var n,s,V,k,o,r,F,e,u,g,a,f,c,I,B,H,G,j,K,W,Y,x,h,i,l,q,w,J,X,d,v,E,_,R,Q,p,A,T,S,O,N,Z,z,C,$,tt,nt,y,it,et,st,m,ot,D,P,b,L,rt,ut,M,ht,at,U={};function ft(){var t,n='';for('-'===s&&r(n='-');s>='0'&&s<='9';)n+=s,r();if('.'===s)for(n+='.';r()&&s>='0'&&s<='9';)n+=s;if('e'===s||'E'===s)for(n+=s,r(),'-'!==s&&'+'!==s||(n+=s,r());s>='0'&&s<='9';)n+=s,r();if(t=+n,!isNaN(t))return t;o('Bad number');}function t(t){return t<10?'0'+t:t;}function ct(t){return E.lastIndex=0,E.test(t)?'\"'+t.replace(E,function(t){var n=Q[t];return'string'===typeof n?n:'\\\\u'+('0000'+t.charCodeAt(0).toString(16)).slice(-4);})+'\"':'\"'+t+'\"';}g=lt.Constants={version:'4.7.2',CUSTOMER_KEY:'customerKey',GATEWAY_URL:'gatewayUrl',LOG_LEVEL:'logLevel',ASSET_NAME:'Conviva.assetName',PLAYER_NAME:'Conviva.applicationName',APPLICATION_VERSION:'c3.app.version',IS_LIVE:'Conviva.streamType',ENCODED_FRAMERATE:'Conviva.encodedFrameRate',DEFAULT_RESOURCE:'Conviva.defaultResource',STREAM_URL:'Conviva.streamUrl',VIEWER_ID:'Conviva.viewerId',DURATION:'Conviva.duration',UTM_TRACKING_URL:'c3.cm.utmTrackingUrl',POD_INDEX:'podIndex',POD_POSITION:'podPosition',POD_DURATION:'podDuration',AD_TYPE:'adType',MODULE_NAME:'Conviva.moduleName',MODULE_VERSION:'Conviva.moduleVersion',FRAMEWORK_NAME:'Conviva.frameworkName',FRAMEWORK_VERSION:'Conviva.frameworkVersion',i:'Constants not yet configured',o:'Invalid : Did you report playback ended?',u:'Invalid : Did you report ad playback ended?',h:'Player cannot be null',l:'PlaybackAnlytics already built',v:'PlaybackAnlytics not yet built',Playback:{BITRATE:'BITRATE',AVG_BITRATE:'AVG_BITRATE',PLAY_HEAD_TIME:'PLAY_HEAD_TIME',RESOLUTION:'RESOLUTION',BUFFER_LENGTH:'BUFFER_LENGTH',PLAYER_STATE:'PLAYER_STATE',RENDERED_FRAMERATE:'RENDERED_FRAMERATE',SEEK_STARTED:'SEEK_STARTED',SEEK_ENDED:'SEEK_ENDED',CDN_IP:'CDN_IP',DROPPED_FRAMES_TOTAL:'DROPPED_FRAMES_TOTAL',DROPPED_FRAMES_COUNT:'DROPPED_FRAMES_COUNT',AUDIO_LANGUAGE:'AUDIO_LANGUAGE',SUBTITLES_LANGUAGE:'SUBTITLES_LANGUAGE',CLOSED_CAPTIONS_LANGUAGE:'CLOSED_CAPTIONS_LANGUAGE'},Network:{SIGNAL_STRENGTH:'SIGNAL_STRENGTH',LINK_ENCRYPTION:'LINK_ENCRYPTION',CONNECTION_TYPE:'CONNECTION_TYPE'},ErrorSeverity:{FATAL:1,WARNING:0},NO_SESSION_KEY:-2,AdPosition:{PREROLL:'Pre-roll',MIDROLL:'Mid-roll',POSTROLL:'Post-roll'},AdPlayer:{CONTENT:'CONTENT',SEPARATE:'SEPARATE'},DeviceType:{DESKTOP:'DESKTOP',CONSOLE:'Console',SETTOP:'Settop',MOBILE:'Mobile',TABLET:'Tablet',SMARTTV:'SmartTV'},AdType:{CLIENT_SIDE:'Client Side',SERVER_SIDE:'Server Side'},AdSlates:{BLACKOUT_SLATE:'Blackout slate',TECHNICAL_DIFFICULTIES_SLATE:'Technical Difficulties slate',COMMERCIAL_SLATE:'Commercial Break slate',OTHER_SLATE:'Other slate',VPAID:'VPAID',REGULAR:'Regular Ad'},AdServingType:{INLINE:'Inline',WRAPPER:'Wrapper'},DeviceCategory:{ANDROID_DEVICE:'AND',APPLE_DEVICE:'APL',CHROMECAST:'CHR',DESKTOP_APP:'DSKAPP',DEVICE_SIMULATOR:'SIMULATOR',LG_TV:'LGTV',NINTENDO:'NINTENDO',PLAYSTATION:'PS',ROKU:'RK',SAMSUNG_TV:'SAMSUNGTV',SMART_TV:'TV',SET_TOP_BOX:'STB',TIVO:'TIVO',WEB:'WEB',WINDOWS_DEVICE:'WIN',XBOX:'XB',KAIOS_DEVICE:'KAIOS'},LogLevel:{DEBUG:0,INFO:1,WARNING:2,ERROR:3,NONE:4},PlayerState:{STOPPED:'STOPPED',PLAYING:'PLAYING',BUFFERING:'BUFFERING',PAUSED:'PAUSED',UNKNOWN:'UNKNOWN',NOT_MONITORED:'NOT_MONITORED'},Events:{USER_WAIT_STARTED:'Conviva.UserWaitStarted',USER_WAIT_ENDED:'Conviva.UserWaitEnded',BUMPER_VIDEO_STARTED:'Conviva.BumperVideoStarted',BUMPER_VIDEO_ENDED:'Conviva.BumperVideoEnded',AD_REQUESTED:'Conviva.AdRequested',AD_RESPONSE:'Conviva.AdResponse',AD_SLOT_STARTED:'Conviva.SlotStarted',AD_ATTEMPTED:'Conviva.AdAttempted',AD_SLOT_ENDED:'Conviva.SlotEnded',AD_IMPRESSION_START:'Conviva.AdImpression',AD_START:'Conviva.AdStart',AD_FIRST_QUARTILE:'Conviva.AdFirstQuartile',AD_MID_QUARTILE:'Conviva.AdMidQuartile',AD_THIRD_QUARTILE:'Conviva.AdThirdQuartile',AD_COMPLETE:'Conviva.AdComplete',AD_END:'Conviva.AdEnd',AD_IMPRESSION_END:'Conviva.AdImpressionEnd',AD_SKIPPED:'Conviva.AdSkipped',AD_ERROR:'Conviva.AdError',AD_PROGRESS:'Conviva.AdProgress',AD_CLOSE:'Conviva.AdClose',CONTENT_PAUSED:'Conviva.PauseContent',CONTENT_RESUMED:'Conviva.ResumeContent',POD_START:'Conviva.PodStart',POD_END:'Conviva.PodEnd'},ErrorType:{ERROR_UNKNOWN:'ERROR_UNKNOWN',ERROR_IO:'ERROR_IO',ERROR_TIMEOUT:'ERROR_TIMEOUT',ERROR_NULL_ASSET:'ERROR_NULL_ASSET',ERROR_MISSING_PARAMETER:'ERROR_MISSING_PARAMETER',ERROR_NO_AD_AVAILABLE:'ERROR_NO_AD_AVAILABLE',ERROR_PARSE:'ERROR_PARSE',ERROR_INVALID_VALUE:'ERROR_INVALID_VALUE',ERROR_INVALID_SLOT:'ERROR_INVALID_SLOT',ERROR_3P_COMPONENT:'ERROR_3P_COMPONENT',ERROR_UNSUPPORTED_3P_FEATURE:'ERROR_UNSUPPORTED_3P_FEATURE',ERROR_DEVICE_LIMIT:'ERROR_DEVICE_LIMIT',ERROR_UNMATCHED_SLOT_SIZE:'ERROR_UNMATCHED_SLOT_SIZE'},StreamType:{UNKNOWN:'UNKNOWN',LIVE:'LIVE',VOD:'VOD'},CallbackFunctions:{CONSOLE_LOG:'consoleLog',MAKE_REQUEST:'makeRequest',SAVE_DATA:'saveData',LOAD_DATA:'loadData',GET_EPOCH_TIME_IN_MS:'getEpochTimeInMs',CREATE_TIMER:'createTimer',GENERATE_HASH:'generateHash',BASE64_ENCODE:'base64Encode'},DeviceMetadata:{BRAND:'DeviceBrand',MANUFACTURER:'DeviceManufacturer',MODEL:'DeviceModel',TYPE:'DeviceType',VERSION:'DeviceVersion',OS_NAME:'OperatingSystemName',OS_VERSION:'OperatingSystemVersion',CATEGORY:'DeviceCategory',SCREEN_RESOLUTION_WIDTH:'ScreenWidth',SCREEN_RESOLUTION_HEIGHT:'ScreenHeight',SCREEN_RESOLUTION_SCALE_FACTOR:'ScaleFactor'},AD_PRELOAD_FEATURE:'adPreloading',AD_TAG_URL:'adTagUrl',IMASDK_CONTENT_PLAYER:'imaMainContentPlayer',CONVIVA_AD_MODULE:'convivaAdModule',CONVIVA_MODULE:'convivaModule',MEDIA_ELEMENT:'mediaElement',APP_TRACKER_EVENT:{TYPE:'convivaVideoEvent',INIT:'c3.sdk.init',VIDEO_ATTEMPT:'c3.video.attempt',VIDEO_END:'c3.video.end',VIDEO_PLAY:'c3.video.play',VIDEO_PAUSE:'c3.video.pause',VIDEO_BUFFERING:'c3.video.buffering',VIDEO_ERROR:'c3.video.error',SDK_CUSTOM_EVENT:'c3.sdk.custom_event',VIDEO_CUSTOM_EVENT:'c3.video.custom_event',AD_BREAK_START:'c3.ad.ad_break_start',AD_BREAK_END:'c3.ad.ad_break_end',VIDEO_METADATA_CHANGE:'c3.video.set_content_info',VIDEO_BITRATE_SWITCH:'c3.video.bitrate_switch'}},(a=lt.Client=function(){var h=this;this._=null,this.R=!1,this.version=a.version,this.p=null,this.A=null,this.T=null,this.S=-1,this.O=null,this.N=null,this.g=null,this.I=null,this.C=-1,this.m=!1,this.D={},this.P=function(){h.p;},this.L={},this.M=null,this.U=null,this.V=null,this.k=function(){this.g.F('Client.makeIPV4IPV6GlobalSessions',function(){var t;h.I&&null!==(t=h.I.get(y.B))&&t!==N.H&&h.A&&((t=new c).custom['c3.IPV4IPV6GlobalSession']='T',t.custom['c3.domain']=h.O.G.indexOf(f.j)>-1?f.j:f.K,h.W=h.A.Y(t,null),(t=new c).custom['c3.IPV4IPV6GlobalSession']='T',t.custom['c3.domain']=h.O.q.indexOf(f.J)>-1?f.J:f.X,h.Z=h.A.Y(t,null));});},this.$=function(i){h.g.F('Client.updateConnectionType',function(){if(h.M=i,h.A){var t,n=h.A.tt();for(t in n)n[t].nt(i);}});},this.it=function(i){h.g.F('Client.updateLinkEncryption',function(){if(h.U=i,h.A){var t,n=h.A.tt();for(t in n)n[t].et(i);}});},this.ot=function(t){h.g.F('Client.updateSignalStrength',function(){h.V=t;});},function(t,n,i,e){if(!(t instanceof f))throw new Error('clientSettings parameter should be an instance of ClientSettings.');if(!(n instanceof x))throw new Error('systemFactory parameter should be an instance of SystemFactory.');t.gatewayUrl!==f.rt+f.ut&&t.gatewayUrl!==f.ht+f.ut||(this.R=!0),e&&(this.version=e),this.O=t.ct(),this.T=n,this.T.lt('SDK',this.O,this.version),this.g=this.T.dt(this.version),this.g.F('Client.init',function(){if(h.I=h.T.vt(),h.I.Et(),h.C=h.I.get(y._t),-1!==h.C&&void 0!==h.C&&null!==h.C||(h.C=P.Rt()),h.A=h.T.At(h,h.O,h.I),i)for(var t in i)switch(t){case g.Network.CONNECTION_TYPE:h.$(i[t]);break;case g.Network.LINK_ENCRYPTION:h.it(i[t]);break;case g.Network.SIGNAL_STRENGTH:h.ot(i[t]);}h.k();},function(t){throw new Error('Client constructor failed: '+t.message);});}.apply(this,arguments),this.release=function(){this.m||this.g.F('Client.release',function(){h.p,h.A.Tt(),h.A=null,h.S=-1,h.C=-1,h.g=null,h.O=null,h.N=null,h.T=null,h.m=!0;});},this.createSession=function(t,n,i){var e=a.NO_SESSION_KEY;return this.m||(!t||t instanceof c)&&this.g.F('Client.createSession',function(){e=h.A.St(t,C.Nt.Ot,n,(i?g:h).version);}),e;},this.createAdSession=function(i,e,s,o,r){var u=a.NO_SESSION_KEY;return this.m||(!e||e instanceof c)&&this.g.F('Client.createAdSession',function(){var t,n;e||(e=new c),m.gt(i)&&i!==a.NO_SESSION_KEY&&(t=h.A.It(i))&&(n=e.custom[g.APPLICATION_VERSION],t.wt&&t.wt.Ct&&(!e.viewerId&&t.wt.Ct.viewerId&&(e.viewerId=t.wt.Ct.viewerId),!e.applicationName&&t.wt.Ct.applicationName&&(e.applicationName=t.wt.Ct.applicationName),e.streamType===g.StreamType.UNKNOWN&&t.wt.Ct.streamType!==g.StreamType.UNKNOWN&&(e.streamType=t.wt.Ct.streamType),'undefined'!==typeof n&&n||'undefined'!==typeof(n=t.wt.Ct.custom[g.APPLICATION_VERSION])&&n&&(e.custom[g.APPLICATION_VERSION]=n)),e.custom['c3.csid']=m.yt(t.C)),u=h.A.St(e,C.Nt.Dt,s,(o?g:h).version,r);}),u;},this.reportError=function(n,i,e){this.m||!m.Pt(i)||e!==a.ErrorSeverity.FATAL&&e!==a.ErrorSeverity.WARNING||this.g.F('Client.reportError',function(){var t=h.A.It(n);t&&t.bt(i,e);});},this.updateContentMetadata=function(i,e){this.m||e instanceof c&&this.g.F('Client.updateContentMetadata',function(){var t,n=h.A.It(i);n&&(t=e.ct(),n.Lt(t));});},this.detachPlayer=function(n){this.m||this.g.F('Client.detachPlayer',function(){var t=h.A.It(n);t&&t.Mt();});},this.Ut=function(n){this.m||this.g.F('Client.offFocus',function(){var t=h.A.It(n);t&&t.Ut();});},this.attachPlayer=function(n,i){this.m||i instanceof I&&this.g.F('Client.attachPlayer',function(){var t=h.A.It(n);t&&t.Vt(i);});},this.kt=function(n){this.m||this.g.F('Client.onFocus',function(){var t=h.A.It(n);t&&t.kt();});},this.contentPreload=function(n){this.m||this.g.F('Client.contentPreload',function(){var t=h.A.It(n);t&&t.Ft();});},this.contentStart=function(n){this.m||this.g.F('Client.contentStart',function(){var t=h.A.It(n);t&&t.Bt();});},this.sendCustomEvent=function(i,e,s){this.m||m.Pt(e)&&(m.Ht(s),this.g.F('Client.sendCustomEvent',function(){i===a.NO_SESSION_KEY&&(h.S<0&&(t=new c,h.S=h.A.Y(t,null)),i=h.S);var t=m.Gt(s),n=h.A.jt(i);n&&n.Kt(e,t);}));},this.adStart=function(n,i,e,s){this.m||i!==a.AdStream.CONTENT&&i!==a.AdStream.SEPARATE||e!==a.AdPlayer.CONTENT&&e!==a.AdPlayer.SEPARATE||(s!==a.AdPosition.PREROLL&&s!==a.AdPosition.MIDROLL&&a.AdPosition.POSTROLL,this.g.F('Client.adStart',function(){var t=h.A.It(n);t&&t.Wt(i,e,s);}));},this.adEnd=function(n){this.m||this.g.F('Client.adEnd',function(){var t=h.A.It(n);t&&t.Yt();});},this.cleanupSession=function(t){this.m||t!==a.NO_SESSION_KEY&&this.g.F('Client.cleanupSession',function(){h.A.It(t)&&h.A.xt(t);});},this.getAttachedPlayer=function(n){var i=null;return this.m||n!==a.NO_SESSION_KEY&&this.g.F('Client.getAttachedPlayer',function(){var t=h.A.It(n);t&&(i=t.qt());}),i;},this.isPlayerAttached=function(t){return!this.m&&null!==this.getAttachedPlayer(t);},this.getPlayerStateManager=function(t){if(this.m)throw new Error('This instance of Conviva.Client has been released.');return new I(this.T,(t?g:h).version);},this.releasePlayerStateManager=function(t){if(this.m)throw new Error('This instance of Conviva.Client has been released.');this.g.F('Client.releasePlayerStateManager',function(){t instanceof I&&t.release();});},this.Jt=function(){return this.O;},this.getId=function(){return this.C;},this.getSessionId=function(n){var i;return this.m?g.NO_SESSION_KEY:(i=null,this.g.F('Client.getSessionId',function(){var t=h.A.It(n);t&&(i=t.Xt());}),i);},this.getClientId=function(n){var i;return this.m?null:(i=null,this.g.F('Client.getClientId',function(){var t=h.A.It(n);t&&(i=t.Qt());}),i);},this.Zt=function(n,i,e){this.m||this.g.F('Client.updateCustomMetric',function(){var t=h.A.It(n);t&&t.Zt(i,e);});},this.setUniqueIdentifier=function(t,n){if(this.m)throw new Error('This instance of Conviva.Client has been released.');if(!t||'undefined'===typeof t||'{}'===JSON.stringify(t))throw new Error('Identifiers are not set. No action taken !!');for(var i in t)this.D[i]=t[i];n&&(this.P=n);},this.setUserPreferenceForDataCollection=function(t,n){if(this.m)throw new Error('This instance of Conviva.Client has been released.');if(!t||'undefined'===typeof t||'{}'===JSON.stringify(t))throw new Error('Identifiers are not set. No action taken !!');for(var i in t)'false'===t[i]?this.L[i]=n?y.$t.zt:y.$t.tn:this.L[i]=y.$t.nn;},this.setUserPreferenceForDataDeletion=function(t){if(this.m)throw new Error('This instance of Conviva.Client has been released.');if(!t||'undefined'===typeof t||'{}'===JSON.stringify(t))throw new Error('Identifiers are not set. No action taken !!');for(var n in t)'true'===t[n]?this.L[n]=y.$t.en:this.L[n]=y.$t.nn;},this.getConfig=function(){if(this.m)throw new Error('This instance of Conviva.Client has been released.');return this.I;};}).version='4.7.2L',a.NO_SESSION_KEY=g.NO_SESSION_KEY,a.AdPosition={PREROLL:g.AdPosition.PREROLL,MIDROLL:g.AdPosition.MIDROLL,POSTROLL:g.AdPosition.POSTROLL},a.AdStream={CONTENT:g.AdPlayer.CONTENT,SEPARATE:g.AdPlayer.SEPARATE},a.AdPlayer={CONTENT:g.AdPlayer.CONTENT,SEPARATE:g.AdPlayer.SEPARATE},a.ErrorSeverity={FATAL:g.ErrorSeverity.FATAL,WARNING:g.ErrorSeverity.WARNING},a.DeviceType={DESKTOP:g.DeviceType.DESKTOP,CONSOLE:g.DeviceType.CONSOLE,SETTOP:g.DeviceType.SETTOP,MOBILE:g.DeviceType.MOBILE,TABLET:g.DeviceType.TABLET,SMARTTV:g.DeviceType.SMARTTV},a.AdTechnology={CLIENT_SIDE:g.AdType.CLIENT_SIDE,SERVER_SIDE:g.AdType.SERVER_SIDE},a.AdType={BLACKOUT_SLATE:g.AdSlates.BLACKOUT_SLATE,TECHNICAL_DIFFICULTIES_SLATE:g.AdSlates.TECHNICAL_DIFFICULTIES_SLATE,COMMERCIAL_SLATE:g.AdSlates.COMMERCIAL_SLATE,OTHER_SLATE:g.AdSlates.OTHER_SLATE,VPAID:g.AdSlates.VPAID,REGULAR:g.AdSlates.REGULAR},a.AdServingType={INLINE:g.AdServingType.INLINE,WRAPPER:g.AdServingType.WRAPPER},a.DeviceCategory={ANDROID_DEVICE:g.DeviceCategory.ANDROID_DEVICE,APPLE_DEVICE:g.DeviceCategory.APPLE_DEVICE,CHROMECAST:g.DeviceCategory.CHROMECAST,DESKTOP_APP:g.DeviceCategory.DESKTOP_APP,DEVICE_SIMULATOR:g.DeviceCategory.DEVICE_SIMULATOR,LG_TV:g.DeviceCategory.LG_TV,NINTENDO:g.DeviceCategory.NINTENDO,PLAYSTATION:g.DeviceCategory.PLAYSTATION,ROKU:g.DeviceCategory.ROKU,SAMSUNG_TV:g.DeviceCategory.SAMSUNG_TV,SMART_TV:g.DeviceCategory.SMART_TV,SET_TOP_BOX:g.DeviceCategory.SET_TOP_BOX,TIVO:g.DeviceCategory.TIVO,WEB:g.DeviceCategory.WEB,WINDOWS_DEVICE:g.DeviceCategory.WINDOWS_DEVICE,XBOX:g.DeviceCategory.XBOX,KAIOS_DEVICE:g.DeviceCategory.KAIOS_DEVICE},(f=lt.ClientSettings=function(){var e=this;this.on=null,m.rn(this,'customerKey',function(){return this.on;}),m.un(this,'customerKey',function(t){m.Pt(t)&&(this.on=t);}),this.hn=f.fn,m.rn(this,'heartbeatInterval',function(){return this.hn;}),m.un(this,'heartbeatInterval',function(t){var n;'number'===typeof t&&(n=m.cn(t))===t&&(this.hn=n);}),this.ln=null,this.G=null,this.q=null,m.rn(this,'gatewayUrl',function(){return this.ln;}),m.un(this,'gatewayUrl',function(t){var n;!m.Pt(t)||'https'!==(n=t.split('://'))[0]&&'http'!==n[0]||-1===t.indexOf('.com',t.length-'.com'.length)||(this.ln=t);}),function(t){if(!m.Pt(t))throw new Error('customerKey must be valid');this.customerKey=t;}.apply(this,arguments),this.equals=function(t){return this.customerKey===t.customerKey&&this.gatewayUrl===t.gatewayUrl&&this.heartbeatInterval===t.heartbeatInterval;},this.ct=function(){var t=new f(this.customerKey);return t.gatewayUrl=function(t){if(m.Pt(t)){var n,i=t.split('://');if('https'===i[0]||'http'===i[0])return i[1]!==f.ut&&-1!==i[1].indexOf(f.ut)?(n=i[1].split(f.ut),e.G='https://'+n[0]+f.j,e.q='https://'+n[0]+f.J):i[1]!==f.dn&&-1!==i[1].indexOf('testonly.conviva.com')?(n=i[1].split('testonly.conviva.com'),e.G='https://'+n[0]+f.K,e.q='https://'+n[0]+f.X):i[1]===f.dn?(e.G='https://'+e.customerKey+'.'+f.K,e.q='https://'+e.customerKey+'.'+f.X):(e.G='https://'+e.customerKey+'.'+f.j,e.q='https://'+e.customerKey+'.'+f.J,t='https://'+e.customerKey+'.'+f.ut),t;}return e.G='https://'+e.customerKey+'.'+f.j,e.q='https://'+e.customerKey+'.'+f.J,'https://'+e.customerKey+'.'+f.ut;}(this.gatewayUrl),t.heartbeatInterval=this.heartbeatInterval,t.G=this.G,t.q=this.q,t;};}).sn='https://conviva.testonly.conviva.com',f.vn='https://cws.conviva.com',f.ut='cws.conviva.com',f.j='ipv4.cws.conviva.com',f.J='ipv6.cws.conviva.com',f.dn='conviva.testonly.conviva.com',f.K='ipv4.testonly.conviva.com',f.X='ipv6.testonly.conviva.com',f.rt='https://',f.ht='http://',f.En=5,f.fn=20,(c=lt.ContentMetadata=function(){this._n=null,m.rn(this,'assetName',function(){return this._n;}),m.un(this,'assetName',function(t){'string'===typeof t&&(this._n=t);}),this.Rn={},m.rn(this,'custom',function(){return this.Rn;}),m.un(this,'custom',function(t){'object'===typeof t&&(this.Rn=m.Gt(t));}),this.An=null,m.rn(this,'defaultResource',function(){return this.An;}),m.un(this,'defaultResource',function(t){'string'===typeof t&&(this.An=t);}),this.Tn=null,m.rn(this,'viewerId',function(){return this.Tn;}),m.un(this,'viewerId',function(t){'string'===typeof t&&(this.Tn=t);}),this.Sn=null,m.rn(this,'applicationName',function(){return this.Sn;}),m.un(this,'applicationName',function(t){'string'===typeof t&&(this.Sn=t);}),this.On=null,m.rn(this,'streamUrl',function(){return this.On;}),m.un(this,'streamUrl',function(t){'string'===typeof t&&(this.On=t);}),this.Nn=c.StreamType.UNKNOWN,m.rn(this,'streamType',function(){return this.Nn;}),m.un(this,'streamType',function(t){t!==c.StreamType.UNKNOWN&&t!==c.StreamType.VOD&&t!==c.StreamType.LIVE||(this.Nn=t);}),this.gn=-1,m.rn(this,'duration',function(){return this.gn;}),m.un(this,'duration',function(t){this.gn=b.In(t);}),this.wn=-1,m.rn(this,'encodedFrameRate',function(){return this.wn;}),m.un(this,'encodedFrameRate',function(t){this.wn=b.In(t);}),function(){}.apply(this,arguments),this.ct=function(){var t,n=new c;for(t in n.assetName=this.assetName,n.applicationName=this.applicationName,n.streamUrl=this.streamUrl,n.viewerId=this.viewerId,n.defaultResource=this.defaultResource,n.streamType=this.streamType,n.duration=this.duration,n.encodedFrameRate=this.encodedFrameRate,this.custom)n.custom[t]=this.custom[t];return n;};}).StreamType={UNKNOWN:g.StreamType.UNKNOWN,LIVE:g.StreamType.LIVE,VOD:g.StreamType.VOD},lt.ErrorType={ERROR_UNKNOWN:g.ErrorType.ERROR_UNKNOWN,ERROR_IO:g.ErrorType.ERROR_IO,ERROR_TIMEOUT:g.ErrorType.ERROR_TIMEOUT,ERROR_NULL_ASSET:g.ErrorType.ERROR_NULL_ASSET,ERROR_MISSING_PARAMETER:g.ErrorType.ERROR_MISSING_PARAMETER,ERROR_NO_AD_AVAILABLE:g.ErrorType.ERROR_NO_AD_AVAILABLE,ERROR_PARSE:g.ErrorType.ERROR_PARSE,ERROR_INVALID_VALUE:g.ErrorType.ERROR_INVALID_VALUE,ERROR_INVALID_SLOT:g.ErrorType.ERROR_INVALID_SLOT,ERROR_3P_COMPONENT:g.ErrorType.ERROR_3P_COMPONENT,ERROR_UNSUPPORTED_3P_FEATURE:g.ErrorType.ERROR_UNSUPPORTED_3P_FEATURE,ERROR_DEVICE_LIMIT:g.ErrorType.ERROR_DEVICE_LIMIT,ERROR_UNMATCHED_SLOT_SIZE:g.ErrorType.ERROR_UNMATCHED_SLOT_SIZE},lt.Events={AD_REQUESTED:g.Events.AD_REQUESTED,AD_RESPONSE:g.Events.AD_RESPONSE,AD_SLOT_STARTED:g.Events.AD_SLOT_STARTED,AD_ATTEMPTED:g.Events.AD_ATTEMPTED,AD_SLOT_ENDED:g.Events.AD_SLOT_ENDED,AD_IMPRESSION_START:g.Events.AD_IMPRESSION_START,AD_START:g.Events.AD_START,AD_FIRST_QUARTILE:g.Events.AD_FIRST_QUARTILE,AD_MID_QUARTILE:g.Events.AD_MID_QUARTILE,AD_THIRD_QUARTILE:g.Events.AD_THIRD_QUARTILE,AD_COMPLETE:g.Events.AD_COMPLETE,AD_END:g.Events.AD_END,AD_IMPRESSION_END:g.Events.AD_IMPRESSION_END,AD_SKIPPED:g.Events.AD_SKIPPED,AD_ERROR:g.Events.AD_ERROR,AD_PROGRESS:g.Events.AD_PROGRESS,AD_CLOSE:g.Events.AD_CLOSE,CONTENT_PAUSED:g.Events.CONTENT_PAUSED,CONTENT_RESUMED:g.Events.CONTENT_RESUMED,POD_START:g.Events.POD_START,POD_END:g.Events.POD_END},(I=lt.PlayerStateManager=function(){var e=this;e.Cn=null,e.yn=-2,e.Dn=-2,e.Pn=I.PlayerState.UNKNOWN,e.bn={},e.Ln=-2,e.wn=-2,e.gn=-2,e.Mn=null,e.Un=null,e.On=null,e.Vn=null,e.kn=null,e.Fn=-1,e.Bn=-1,e.M=null,e.U=null,e.Hn=null,e.Gn=[],e.m=!1,e.jn=null,e.Kn=null,e.Wn=null,this.release=function(){e.m||e.g.F('PlayerStateManager.release',function(){e.Cn&&e.Cn.Yn(),e.xn(),e.T=null,e.g=null,e.m=!0;});},this.setPlayheadTime=function(){},this.setBufferLength=function(){},this.setRenderedFrameRate=function(){},this.getEncodedFrameRate=function(){return e.wn;},this.setEncodedFrameRate=function(n){e.m||e.g.F('PlayerStateManager.setEncodedFrameRate',function(){var t=b.In(n);t>=-1&&(e.wn=t,e.Cn)&&e.Cn.qn(e.wn);});},this.getDuration=function(){return e.gn;},this.setClientMeasureInterface=function(t){m.Jn(t,new lt.ClientMeasureInterface,'ClientMeasureInterface'),this.Xn=t;},this.getPHT=function(){return this.Xn&&'function'===typeof this.Xn.getPHT?this.Xn.getPHT():I.DEFAULT_PHT;},this.getBufferLength=function(){return this.Xn&&'function'===typeof this.Xn.getBufferLength?this.Xn.getBufferLength():I.DEFAULT_BUFFER_LENGTH;},this.getSignalStrength=function(){return this.Xn&&'function'===typeof this.Xn.getSignalStrength?this.Xn.getSignalStrength():I.DEFAULT_SIGNAL_STRENGTH;},this.getRenderedFrameRate=function(){return this.Xn&&'function'===typeof this.Xn.getRenderedFrameRate?this.Xn.getRenderedFrameRate():I.DEFAULT_RENDERED_FRAME_RATE;},this.setDuration=function(n){e.m||e.g.F('PlayerStateManager.setDuration',function(){var t=b.In(n);t>=-1&&(e.gn=t,e.Cn)&&e.Cn.Qn(e.gn);});},this.getStreamUrl=function(){return e.On;},this.setStreamUrl=function(t){e.m||e.g.F('PlayerStateManager.setStreamUrl',function(){t&&(e.On=t,e.Cn)&&e.Cn.Zn(e.On);});},this.zn=function(){return e.Vn;},this.$n=function(){return e.kn;},this.setModuleNameAndVersion=function(t,n){e.Vn=t,e.kn=n;},this.ti=function(){return e.Un;},this.setPlayerType=function(t){e.m||e.g.F('PlayerStateManager.setPlayerType',function(){e.Un=t,e.Cn&&e.Cn.ni(e.Un);});},this.ii=function(){return e.Mn;},this.setPlayerVersion=function(t){e.m||e.g.F('PlayerStateManager.setPlayerVersion',function(){e.Mn=t,e.Cn&&e.Cn.ei(e.Mn);});},this.si=function(){return e.jn;},this.setAudioLang=function(t){e.m||e.g.F('PlayerStateManager.setAudioLang',function(){e.jn=t,e.Cn&&e.Cn.oi(e.jn);});},this.ri=function(){return e.Kn;},this.setSubtitleLang=function(t){e.m||e.g.F('PlayerStateManager.setSubtitleLang',function(){e.Kn=t,e.Cn&&e.Cn.ui(e.Kn);});},this.hi=function(){return e.Wn;},this.setCcLang=function(t){e.m||e.g.F('PlayerStateManager.setCCLang',function(){e.Wn=t,e.Cn&&e.Cn.ai(e.Wn);});},this.setMonitoringNotifier=function(t){return!e.m&&!e.Cn&&(e.Cn=t,e.p,!0);},this.xn=function(){e.m||(e.Cn=null,e.p);},this.fi=function(){e.setPlayerState(e.getPlayerState()),e.setBitrateKbps(e.ci()),e.setAvgBitrateKbps(e.li()),e.setDuration(e.getDuration()),e.setEncodedFrameRate(e.getEncodedFrameRate()),e.setStreamUrl(e.getStreamUrl()),e.setPlayerType(e.ti()),e.setPlayerVersion(e.ii()),e.setAudioLang(e.si()),e.setSubtitleLang(e.ri()),e.setCcLang(e.hi());for(var t=0;t=-1&&(e.yn=t,e.Cn)&&e.Cn._i(e.yn);});},this.li=function(){return e.Dn;},this.setAvgBitrateKbps=function(n){e.m||e.g.F('PlayerStateManager.setAvgBitrateKbps',function(){var t=b.In(n);t>=-1&&(e.Dn=t,e.Cn)&&e.Cn.Ri(e.Dn);});},this.setPlayerSeekStart=function(t){e.m||e.g.F('PlayerStateManager.setPlayerSeekStart()',function(){e.Cn&&e.Cn.pi(I.SEEK_ACTIONS_TYPE.SEEK_START,t);});},this.setPlayerSeekEnd=function(){e.m||e.g.F('PlayerStateManager.setPlayerSeekEnd()',function(){e.Cn&&e.Cn.pi(I.SEEK_ACTIONS_TYPE.SEEK_END,-1);});},this.setUserSeekButtonUp=function(){e.m||e.g.F('PlayerStateManager.setUserSeekButtonUp()',function(){e.Cn&&e.Cn.pi(I.SEEK_ACTIONS_TYPE.BUTTON_UP,-1);});},this.setUserSeekButtonDown=function(){e.m||e.g.F('PlayerStateManager.setUserSeekButtonDown()',function(){e.Cn&&e.Cn.pi(I.SEEK_ACTIONS_TYPE.BUTTON_DOWN,-1);});},this.setVideoResolutionWidth=function(n){e.m||e.g.F('PlayerStateManager.setVideoResolutionWidth()',function(){var t=b.In(n);t>0&&(e.Fn=t),e.Cn&&e.Cn.Ai(e.Fn);});},this.setVideoResolutionHeight=function(n){e.m||e.g.F('PlayerStateManager.setVideoResolutionHeight()',function(){var t=b.In(n);t>0&&(e.Bn=t),e.Cn&&e.Cn.Ti(e.Bn);});},this.setConnectionType=function(t){e.m||e.g.F('PlayerStateManager.setConnectionType()',function(){e.M=t,e.Cn&&e.Cn.nt(e.M);});},this.setLinkEncryption=function(t){e.m||e.g.F('PlayerStateManager.setLinkEncryption()',function(){e.U=t,e.Cn&&e.Cn.et(e.U);});},this.setSignalStrength=function(){},this.di=function(t){var n,i;e.Hn=t,e.Cn?(n=t.errorCode,i=t.severity,e.Cn.Si(n,i)):e.Gn.push(t);},this.sendError=function(n,i){e.m||e.g.F('PlayerStateManager.sendError',function(){var t=new L(n,i);e.di(t);});},this.reset=function(){e.m||e.g.F('PlayerStateManager.reset',function(){e.yn=-2,e.Dn=-2,e.Pn=I.PlayerState.UNKNOWN,e.bn={},e.Ln=-1,e.wn=-1,e.gn=-1,e.Mn=null,e.Un=null,e.On=null,e.Hn=null,e.Gn=[];});},this.setCDNServerIP=function(t){e.m||e.g.F('PlayerStateManager.setCDNServerIP',function(){e.Cn&&e.Cn.Oi(t);});},this.Ni=function(){return e.gi;},this.setDroppedFramesTotal=function(t){e.m||e.g.F('PlayerStateManager.setDroppedFramesTotal',function(){e.Cn&&e.Cn.Ii(t);});},this.setDroppedFramesCount=function(t){e.m||e.g.F('PlayerStateManager.setDroppedFramesCount',function(){e.Cn&&e.Cn.wi(t);});},this.Ci=function(){return e.Hn;},function(t,n){e.T=t,e.g=e.T.dt(n);}.apply(e,arguments);}).PlayerState={STOPPED:g.PlayerState.STOPPED,PLAYING:g.PlayerState.PLAYING,BUFFERING:g.PlayerState.BUFFERING,PAUSED:g.PlayerState.PAUSED,UNKNOWN:g.PlayerState.UNKNOWN,NOT_MONITORED:g.PlayerState.NOT_MONITORED},I.vi=function(t){return t===I.PlayerState.STOPPED||t===I.PlayerState.PLAYING||t===I.PlayerState.BUFFERING||t===I.PlayerState.PAUSED||t===I.PlayerState.UNKNOWN||t===I.PlayerState.NOT_MONITORED;},I.SEEK_ACTIONS_TYPE={SEEK_START:'pss',SEEK_END:'pse',BUTTON_UP:'bu',BUTTON_DOWN:'bd'},I.DEFAULT_SIGNAL_STRENGTH=1e3,I.DEFAULT_RENDERED_FRAME_RATE=-1,I.DEFAULT_BUFFER_LENGTH=-1,I.DEFAULT_PHT=-1,lt.ClientMeasureInterface=function(){this.getPHT=function(){},this.getBufferLength=function(){},this.getSignalStrength=function(){},this.getRenderedFrameRate=function(){};},B=lt.HttpInterface=function(){this.makeRequest=function(){},this.release=function(){};},H=lt.LoggingInterface=function(){this.consoleLog=function(){},this.release=function(){};},G=lt.MetadataInterface=function(){this.getBrowserName=function(){},this.getBrowserVersion=function(){},this.getDeviceBrand=function(){},this.getDeviceManufacturer=function(){},this.getDeviceModel=function(){},this.getDeviceType=function(){},this.getDeviceVersion=function(){},this.getFrameworkName=function(){},this.getFrameworkVersion=function(){},this.getOperatingSystemName=function(){},this.getOperatingSystemVersion=function(){},this.getDeviceCategory=function(){},this.getScreenWidth=function(){},this.getScreenHeight=function(){},this.getScaleFactor=function(){},this.release=function(){};},j=lt.StorageInterface=function(){this.saveData=function(){},this.loadData=function(){},this.release=function(){};},K=lt.SystemInterface=function(){!function(t,n,i,e,s,o){m.Jn(t,new W,'TimeInterface'),m.Jn(n,new Y,'TimerInterface'),m.Jn(i,new B,'HttpInterface'),m.Jn(e,new j,'StorageInterface'),m.Jn(s,new G,'MetadataInterface'),m.Jn(o,new H,'LoggingInterface'),this.yi=t,this.mi=n,this.Di=i,this.Pi=e,this.bi=s,this.Li=o;}.apply(this,arguments),this.release=function(){this.yi&&(this.yi.release(),this.yi=null),this.mi&&(this.mi.release(),this.mi=null),this.Di&&(this.Di.release(),this.Di=null),this.Pi&&(this.Pi.release(),this.Pi=null),this.bi&&(this.bi.release(),this.bi=null),this.Li&&(this.Li.release(),this.Li=null);};},W=lt.TimeInterface=function(){this.getEpochTimeMs=function(){},this.release=function(){};},Y=lt.TimerInterface=function(){this.createTimer=function(){},this.release=function(){};},x=lt.SystemFactory=function(){var t=this;!function(t,n){if(!(t instanceof K))throw new Error('systemInterface parameter should be an instance of SystemInterface.');this.Mi=t,this.yi=this.Mi.yi,this.mi=this.Mi.mi,this.Di=this.Mi.Di,this.Pi=this.Mi.Pi,this.bi=this.Mi.bi,this.Li=this.Mi.Li,n instanceof h?this.O=n.ct():this.O=new h;}.apply(this,arguments),this.lt=function(t,n,i){this.Ui=t,this.Vi=n,this.ki=i;},this.release=function(){this.Mi.release(),this.Mi=null,this.Ui=null,this.O=null,this.Fi=null;};var n=function(){return new ut(t.Li,t.yi,t.Jt(),t.Fi,t.Ui);};this.buildLogger=function(){return n();},this.At=function(t,n,i){return new tt(t,n,i,this);},this.Bi=function(t){return new D(this.buildLogger(),this.Hi(),this.Vi,t);},this.Gi=function(){return new nt(this.buildTimer(t.ki));},this.ji=function(){var t=new at(this.buildLogger(),this.mi,new et(this.buildLogger(),null,this.Jt()));return new nt(t);},this.Hi=function(){return new rt(this.buildLogger(),this.Di,this.ji(),this.Jt());},this.dt=function(t){return new et(this.buildLogger(),this.Bi(t),this.Jt());},this.buildTime=function(){return new ht(this.yi,this.buildLogger());},this.buildTimer=function(t){return new at(this.buildLogger(),this.mi,this.dt(t));},this.Ki=function(){return new U.Storage(this.buildLogger(),this.Pi,this.Gi(),this.Jt());},this.vt=function(){return new y(this.buildLogger(),this.Ki(),this.Wi());},this.Yi=function(t){return new M(this.buildLogger(),this.bi,this.dt(t));},this.xi=function(){return new N;},this.qi=function(t,n){return new st(t,this.buildLogger(),this.Hi(),this.Wi(),n);},this.Ji=function(t,n,i,e,s){var o=this.qi(n,e.custom['c3.domain']);return new C(this.Xi(),t,n,this.buildLogger(),this.dt(s),this.buildTimer(s),o,this.xi(),this.buildTime(),this.Qi(),i,e,s);},this.Zi=function(t,n,i,e,s,o,r){t=this.Ji(t,n.ct(),i,o,r);return new $(e,s,i,this.Yi(r),t,this.dt(r),this.buildLogger());},this.Xi=function(){return new it;},this.Wi=function(){return new Z;},this.Qi=function(){return this.Fi;},this.Jt=function(){return this.O;},this.Fi=new ot;},(h=lt.SystemSettings=function(){this.zi=h.$i,m.rn(this,'logLevel',function(){return this.zi;}),m.un(this,'logLevel',function(t){var n;'number'===typeof t&&(n=m.cn(t))===t&&n>=h.LogLevel.DEBUG&&n<=h.LogLevel.ERROR&&(this.zi=n);}),this.te=h.ne,m.rn(this,'allowUncaughtExceptions',function(){return this.te;}),m.un(this,'allowUncaughtExceptions',function(t){m.ie(t)&&(this.te=t);}),this.ee=h.se,m.rn(this,'storageTimeout',function(){return this.ee;}),m.un(this,'storageTimeout',function(t){var n;'number'===typeof t&&(n=m.cn(t))===t&&(this.ee=n);}),this.oe=h.re,m.rn(this,'httpTimeout',function(){return this.oe;}),m.un(this,'httpTimeout',function(t){var n;'number'===typeof t&&(n=m.cn(t))===t&&(this.oe=n);}),function(){}.apply(this,arguments),this.equals=function(t){return this.logLevel===t.logLevel&&this.allowUncaughtExceptions===t.allowUncaughtExceptions&&this.storageTimeout===t.storageTimeout&&this.httpTimeout===t.httpTimeout;},this.ct=function(){var t=new h;return t.logLevel=this.logLevel,t.allowUncaughtExceptions=this.allowUncaughtExceptions,t.storageTimeout=this.storageTimeout,t.httpTimeout=this.httpTimeout,t;};}).LogLevel={DEBUG:g.LogLevel.DEBUG,INFO:g.LogLevel.INFO,WARNING:g.LogLevel.WARNING,ERROR:g.LogLevel.ERROR,NONE:g.LogLevel.NONE},h.ue=h.LogLevel.DEBUG,h.$i=h.LogLevel.NONE,h.he=!0,h.ne=!1,h.se=10,h.re=10,i=U.AdAnalytics=function(){var e=this;function n(t){e.ae?(m.Ht(t)>0&&e.setAdInfo(t),e.ae.fe()||(e.ae.ce(e.le),e.ae.de(!0),e.getAdType()===g.AdType.SERVER_SIDE&&e.reportAdMetric(g.Playback.BITRATE,e.le.ve()))):e.p;}e.Ee=null,e.T=null,e._e=null,e.le=null,e.ae=null,e.Re=null,e.pe=null,e.Ae=null,function(t,n,i){e.Ee=t,e.Ae=i,e.T=n,i&&(e.le=i.Te()),e._e=n.buildTimer(g.version),e.ae=new l(e.Ee,e._e),w.call(this);}.apply(this,arguments),this.setAdInfo=function(t){m.Ht(t)<=0?e.p:(e.p,e.ae&&e.ae.Se(t));},this.setAdPlayerInfo=function(t){m.Ht(t)<=0?e.p:(e.p,e.ae&&e.ae.Se(t));},this.reportAdMetric=function(){0===arguments.length?e.p:1===arguments.length?e.Oe(arguments[0]):2===arguments.length?e.Oe(arguments[0],arguments[1]):3===arguments.length?e.Oe(arguments[0],arguments[1],arguments[2]):4===arguments.length&&e.Oe(arguments[0],arguments[1],arguments[2],arguments[3]);},this.setCallback=function(t){e.ae&&e.ae.Ne(t);},this.reportAdFailed=function(t,n){e.ae?(m.Ht(n)>0&&e.setAdInfo(n),e.ae.fe()?(e.p,e.reportAdError(t,a.ErrorSeverity.FATAL),e.reportAdEnded()):(e.ae.ce(e.le),e.p,n=new L(t,a.ErrorSeverity.FATAL),e.ae.de(!0,n))):e.p;},this.reportAdLoaded=function(t){e.p,n(t);},this.reportAdStarted=function(t){e.p,n(t);},this.reportAdEnded=function(){e.ae?(e.p,e.ae.fe()&&(e.ae.ce(null),e.ae.de(!1))):e.p;},this.reportAdError=function(t,n){e.ae?(e.p,t=new L(t,n),e.ae.di(t)):e.p;},this.reportAdPlayerEvent=function(t,n){if(m.Pt(t))if(e.p,e.ae)switch(t){case g.Events.USER_WAIT_STARTED:case g.Events.BUMPER_VIDEO_STARTED:e.ae.Mt();break;case g.Events.USER_WAIT_ENDED:case g.Events.BUMPER_VIDEO_ENDED:e.ae.Vt();break;default:e.ae.ge(t,n);}else e.p;else e.p;},this.reportAdSkipped=function(){e.ae?(e.p,e.reportAdPlayerEvent(g.Events.AD_SKIPPED),e.reportAdEnded()):e.p;},this.release=function(){e.p,e.ae&&(e.ae.fe()&&(e.ae.ce(null),e.ae.de(!1)),e.ae.Ne(null),e.ae.Ie(),e.ae=null),'undefined'!==typeof lt.AdProxyMonitor&&e.pe&&(lt.AdProxyMonitor.release(e.pe),e.pe=null);},this.setAdListener=function(t,n){t&&('undefined'!==typeof n&&'undefined'!==typeof n.convivaModule?lt.AdProxyMonitor=n.convivaModule.AdProxyMonitor:'undefined'!==typeof ConvivaModule&&(lt.AdProxyMonitor=ConvivaModule.AdProxyMonitor),'undefined'!==typeof lt.AdProxyMonitor)&&(!t&&e.pe?(lt.AdProxyMonitor.release(e.pe),e.pe=null):t&&e.pe?(lt.AdProxyMonitor.release(e.pe),e.p,e.pe=lt.AdProxyMonitor.initConvivaDropIn(t,n,this,lt,e.T)):t&&!e.pe&&(e.p,e.pe=lt.AdProxyMonitor.initConvivaDropIn(t,n,this,lt,e.T)));},this.reportAdBreakStarted=function(t,n,i){e.le&&(e.p,e.we=t,e.Re=n,e.le.Ce(t,n,i));},this.reportAdBreakEnded=function(){e.le&&(e.p,e.we=null,e.Re=null,e.le.ye());},this.getSessionId=function(){return e.le?(e.p,e.ae.Xt()):g.NO_SESSION_KEY;},this.getClientId=function(){return e.le?(e.p,e.ae.Qt()):null;},this.getPlayerMonitor=function(){return e.le;},this.getAdPlayerMonitor=function(){return e.ae;},this.getVideoAnalytics=function(){return e.Ae;},this.getAdType=function(){return e.le?e.le.we:null;},this.me=function(){return e.le?e.le.Re:null;},i.prototype=Object.create(w.prototype),i.prototype.constructor=i;},l=U.AdPlayerMonitorImpl=function(){var s=this;s.De=null,s.Pe=null,function(t,n){d.call(this,t,n);}.apply(this,arguments),this.ce=function(t){this.be()!==t&&(this.Le(),s.Pe=t||null);},this.be=function(){return s.Pe;},this.Me=function(t){var n,i=this.be(),e={};e.error=t,s.De&&(s.Ue=s.De.getPlayerStateManager(!0),s.Ve(),s.Ue.setClientMeasureInterface(this),n=null,i&&(n=i.ke()),s.Fe=s.De.createAdSession(n,s.Ct,s.Ue,!0,e),'undefined'!==typeof t)&&(s.Be(),s.Ie());},l.prototype=Object.create(d.prototype),l.prototype.constructor=l;},q=lt.Analytics={init:function(){if(this.Ee,arguments.length<=0)throw new Error('customerKey must be valid');var t=null,n=null,i=null;if('string'===typeof arguments[0]&&!m.Pt(t=arguments[0]))throw new Error('customerKey must be valid');arguments.length>=2&&'object'===typeof arguments[1]&&(n=arguments[1]),arguments.length>=3&&'object'===typeof arguments[2]&&(i=arguments[2]);var t=new f(t),e=new h,i=(m.Ht(i)>0&&(i[g.GATEWAY_URL]&&(t.gatewayUrl=i[g.GATEWAY_URL]),i[g.LOG_LEVEL]>=0)&&(e.logLevel=i[g.LOG_LEVEL]),new lt.Impl.Html5Logging),s=new lt.Impl.Html5Storage,o=new lt.Impl.Html5Http,r=new lt.Impl.Html5Timer,u=new lt.Impl.Html5Time;this.bi||(this.bi=new lt.Impl.Html5Metadata),n&&(n[g.CallbackFunctions.CONSOLE_LOG]&&(i.consoleLog=n[g.CallbackFunctions.CONSOLE_LOG]),n[g.CallbackFunctions.MAKE_REQUEST]&&(o.makeRequest=n[g.CallbackFunctions.MAKE_REQUEST]),n[g.CallbackFunctions.SAVE_DATA]&&(s.saveData=n[g.CallbackFunctions.SAVE_DATA]),n[g.CallbackFunctions.LOAD_DATA]&&(s.loadData=n[g.CallbackFunctions.LOAD_DATA]),n[g.CallbackFunctions.GET_EPOCH_TIME_IN_MS]&&(u.getEpochTimeMs=n[g.CallbackFunctions.GET_EPOCH_TIME_IN_MS]),n[g.CallbackFunctions.CREATE_TIMER])&&(r.createTimer=n[g.CallbackFunctions.CREATE_TIMER]),this.Mi=new K(u,r,o,s,this.bi,i),this.T=new x(this.Mi,e),this.T.lt('Analytics',t),this.Ee=new a(t,this.T,this.He,q.version),this.Ee._=new J(this.Ee,this),this.Ee._.Ge();},release:function(){var t=0;if(this.je){for(t=0;t=2&&'CONVIVA'!==n?R(n,l()):i===w.Ye.xe?R(-1,w.Ye.xe):R(-1,l());break;case g.Playback.SEEK_ENDED:i===w.Ye.xe?p(w.Ye.xe):p(l());break;case g.Playback.CDN_IP:a=n,f=l(),m.Pt(a)&&(!c.ae||f!==w.Ye.xe&&f!==w.Ye.We||c.ae.os(a),!c.le||f!==w.Ye.qe&&f!==w.Ye.We||c.le.os(a));break;case g.Playback.DROPPED_FRAMES_TOTAL:f=n,a=l();f=parseInt(f,10),isNaN(f)||(!c.ae||a!==w.Ye.xe&&a!==w.Ye.We||c.ae.rs(f),!c.le)||a!==w.Ye.qe&&a!==w.Ye.We||c.le.rs(f);break;case g.Playback.DROPPED_FRAMES_COUNT:var s=n,o=l();s=parseInt(s,10),isNaN(s)||(!c.ae||o!==w.Ye.xe&&o!==w.Ye.We||c.ae.us(s),!c.le)||o!==w.Ye.qe&&o!==w.Ye.We||c.le.us(s);break;case g.Playback.AUDIO_LANGUAGE:o=n,s=l(),m.Pt(o)&&(!c.ae||s!==w.Ye.xe&&s!==w.Ye.We||c.ae.hs(o),!c.le||s!==w.Ye.qe&&s!==w.Ye.We||c.le.hs(o));break;case g.Playback.SUBTITLES_LANGUAGE:O(n,l());break;case g.Playback.CLOSED_CAPTIONS_LANGUAGE:N(n,l());break;default:r=t,u=n,h=l(),m.Pt(r)&&u&&(!c.ae||h!==w.Ye.xe&&h!==w.Ye.We||c.ae.Zt(r,u),!c.le||h!==w.Ye.qe&&h!==w.Ye.We||c.le.Zt(r,u));}var r,u,h,a,f;};},U.AnalyticsImpl.Ye={xe:1,qe:2,We:3},J=U.AppAnalyticsHandler=function(){var o=this;o.Ee=null,o.fs=null,o.cs=null,o.ls=null,o.wt=null,function(t,n){o.Ee=t,o.fs=n,'undefined'!==typeof document&&document&&(o.cs=document.createEvent('HTMLEvents'),o.cs.initEvent(g.APP_TRACKER_EVENT.TYPE,!0,!0));}.apply(this,arguments),this.Ge=function(){o.ds(g.APP_TRACKER_EVENT.INIT);},this.vs=function(){o.ds(g.APP_TRACKER_EVENT.VIDEO_ATTEMPT);},this.Es=function(){o.ds(g.APP_TRACKER_EVENT.VIDEO_END),o.wt=null;},this._s=function(t){o.ds(g.APP_TRACKER_EVENT.VIDEO_PLAY,t);},this.Rs=function(t){o.ds(g.APP_TRACKER_EVENT.VIDEO_PAUSE,t);},this.ps=function(t){o.ds(g.APP_TRACKER_EVENT.VIDEO_ERROR,t);},this.As=function(t){o.ds(g.APP_TRACKER_EVENT.VIDEO_BUFFERING,t);},this.Ts=function(t){o.ds(g.APP_TRACKER_EVENT.VIDEO_BITRATE_SWITCH,t);},this.Ss=function(t){o.ds(g.APP_TRACKER_EVENT.VIDEO_METADATA_CHANGE,t);},this.Os=function(t){t={cen:t.name,ced:t.data};o.ds(g.APP_TRACKER_EVENT.VIDEO_CUSTOM_EVENT,t);},this.Ns=function(t){t={cen:t.name,ced:t.data};o.ds(g.APP_TRACKER_EVENT.SDK_CUSTOM_EVENT,t);},this.gs=function(t){o.ds(g.APP_TRACKER_EVENT.AD_BREAK_START,{cen:'PodStart',ced:t});},this.Is=function(){o.ds(g.APP_TRACKER_EVENT.AD_BREAK_END,{cen:'PodEnd'});},this.ds=function(t,n){try{if(o.cs){if(o.ws(),o.cs.name=o.ls.name=t,o.cs.iid=o.ls.iid=o.Ee.getConfig().getIid(),o.cs.clid=o.ls.clid=o.Ee.getConfig().getClientId(),o.wt){var i=o.wt;if(i.Cs()?(o.cs.sid=o.ls.sid=i.ys.Xt(),o.cs.sst=o.ls.sst=i.Ds,o.cs.url=o.ls.url=i.On,o.cs.st=o.ls.st=i.Ps(),o.cs.an=o.ls.an=i._n,o.cs.pn=o.ls.pn=i.bs,o.cs.tags=o.ls.tags=JSON.stringify(i.Ct.Rn),o.cs.vid=o.ls.vid=i.Tn,i.Ls>=0&&(o.cs.cl=o.ls.cl=i.Ls),o.cs.lv=o.ls.lv=i.Ms,o.cs.fw=o.ls.fw=i.Us(),o.cs.fwv=o.ls.fwv=i.Vs(),o.cs.mn=o.ls.mn=i.Vn,o.cs.mv=o.ls.mv=i.kn,i.yn>=0&&(o.cs.br=o.ls.br=i.yn)):i.ks()&&(o.cs.sid=o.ls.sid=i.ys.Xt(),o.cs.sst=o.ls.sst=i.Ds,o.cs.st=o.ls.st=i.Ps(),o.cs.mn=o.ls.mn=i.Vn,o.cs.mv=o.ls.mv=i.kn),n)for(var e=Object.keys(n),s=0;s0&&o.Ue.setBitrateKbps(o.ve()),o.Oo()>0&&o.Ue.setAvgBitrateKbps(o.Oo()),o.yo()>0&&o.Ue.setVideoResolutionWidth(o.yo()),o.Do()>0&&o.Ue.setVideoResolutionHeight(o.Do()),o.Io()&&o.Ue.setCDNServerIP(o.Io()),m.gt(o.Ni())&&o.Ue.setDroppedFramesTotal(o.Ni()),m.Pt(o.si())&&o.Ue.setAudioLang(o.si()),m.Pt(o.ri())&&o.Ue.setSubtitleLang(o.ri()),m.Pt(o.hi()))&&o.Ue.setCcLang(o.hi());},this.Lt=function(){o.Fe!==a.NO_SESSION_KEY&&o.De&&o.De.updateContentMetadata(o.Fe,o.Ct);},this.Ve=function(){if(o.Ue){o.fo&&m.Ht(o.fo)>0&&(o.fo[g.MODULE_NAME]&&o.fo[g.MODULE_VERSION]&&(t=o.fo[g.MODULE_NAME],n=o.fo[g.MODULE_VERSION],m.Pt(t))&&m.Pt(n)&&o.Ue.setModuleNameAndVersion(t,n),o.fo[g.FRAMEWORK_NAME]&&(t=o.fo[g.FRAMEWORK_NAME],m.Pt(t))&&o.Ue.setPlayerType(t),o.fo[g.FRAMEWORK_VERSION])&&(n=o.fo[g.FRAMEWORK_VERSION],m.Pt(n))&&o.Ue.setPlayerVersion(n);var t,n,i=o.jo();o.Ko();for(var e=0;e>>0;if('function'!==typeof t)throw new TypeError;for(var e,s=[],o=arguments.length>=2?arguments[1]:void 0,r=0;r=0;}).join('&')))&&(o.Ct.custom[g.UTM_TRACKING_URL]=t);}catch(t){o.p.error('PlayerMonitorImpl _createSession : '+t);}o.Fe=o.De.createSession(o.Ct,o.Ue,!0);}},this.Bo=function(){o.De&&(o.Ue&&(o.Ue.setPlayerState(g.PlayerState.STOPPED),o.Ue=null),o.Fe!==g.NO_SESSION_KEY)&&(o.De.cleanupSession(o.Fe),o.Fe=g.NO_SESSION_KEY);},this.Si=function(){if(o.De&&o.Fe!==a.NO_SESSION_KEY){var t=o.jo();o.Ko();for(var n=0;n0&&(r.timeout=s,r.ontimeout=function(){r.ontimeout=r.onreadystatechange=null,o&&o(!1,'timeout after '+s+' ms');}),r.onreadystatechange=function(){4===r.readyState&&(r.ontimeout=r.onreadystatechange=null,200===r.status?o&&o(!0,r.responseText):o&&o(!1,'http status '+r.status));},r.send(i),null;},this.release=function(){};},lt.Impl=lt.Impl||{},lt.Impl.Html5Logging=function(){!function(){}.apply(this,arguments),this.consoleLog=function(t,n){'undefined'!==typeof console&&(console.log&&n===h.LogLevel.DEBUG||n===h.LogLevel.INFO?console.log(t):console.warn&&n===h.LogLevel.WARNING?console.warn(t):console.error&&n===h.LogLevel.ERROR&&console.error(t));},this.release=function(){};},lt.Impl=lt.Impl||{},lt.Impl.Html5Metadata=function(){!function(){}.apply(this,arguments),this.getBrowserName=function(){return null;},this.getBrowserVersion=function(){return null;},this.getDeviceBrand=function(){return null;},this.getDeviceManufacturer=function(){return null;},this.getDeviceModel=function(){return null;},this.getDeviceType=function(){return null;},this.getDeviceVersion=function(){return null;},this.getFrameworkName=function(){return null;},this.getFrameworkVersion=function(){return null;},this.getOperatingSystemName=function(){return null;},this.getOperatingSystemVersion=function(){return null;},this.getDeviceCategory=function(){return null;},this.getScreenWidth=function(){return'undefined'!==typeof window&&window&&window.screen&&window.screen.width?window.screen.width.toString():null;},this.getScreenHeight=function(){return'undefined'!==typeof window&&window&&window.screen&&window.screen.height?window.screen.height.toString():null;},this.getScaleFactor=function(){return'undefined'!==typeof window&&window&&window.devicePixelRatio?window.devicePixelRatio.toString():null;},this.release=function(){};},lt.Impl=lt.Impl||{},lt.Impl.Html5Storage=function(){!function(){}.apply(this,arguments),this.saveData=function(t,n,i,e){t=t+'.'+n;try{localStorage.setItem(t,i),e(!0,null);}catch(t){e(!1,t.toString());}},this.loadData=function(t,n,i){t=t+'.'+n;try{i(!0,localStorage.getItem(t));}catch(t){i(!1,t.toString());}},this.release=function(){};},lt.Impl=lt.Impl||{},lt.Impl.Html5Time=function(){!function(){}.apply(this,arguments),this.getEpochTimeMs=function(){return(new Date).getTime();},this.release=function(){};},lt.Impl=lt.Impl||{},lt.Impl.Html5Timer=function(){!function(){}.apply(this,arguments),this.createTimer=function(t,n){var i=setInterval(t,n);return function(){-1!==i&&(clearInterval(i),i=-1);};},this.release=function(){};},v=U.VideoAnalytics=function(){var s=this;s.Ee=null,s.T=null,s._e=null,s.le=null,s.pe=null,this.release=function(){s.p,s.le&&s.le.fe()&&s.le.de(!1),'undefined'!==typeof lt.ProxyMonitor&&s.pe&&(lt.ProxyMonitor.release(s.pe),s.pe=null),s.le&&(s.le.Ne(null),s.le.Ie(),s.le=null),s._e=null;},function(t,n){s.Ee=t,s.T=n,s._e=n.buildTimer(g.version),s.le=new d(s.Ee,s._e),w.call(this);}.apply(this,arguments),this.reportPlaybackRequested=function(t){s.p,s.le&&(m.Ht(t)>0&&s.setContentInfo(t),s.le.fe()||(s.le.de(!0),s.Ee._.vs()));},this.reportPlaybackEnded=function(){s.p,s.le&&s.le.fe()&&(s.Ee._.Es(),s.le.de(!1),'undefined'!==typeof lt.ProxyMonitor&&s.pe&&(lt.ProxyMonitor.release(s.pe),s.pe=null),s.le.Ne(null));},this.reportPlaybackFailed=function(t,n){s.le&&(m.Ht(n)>0&&s.setContentInfo(n),s.le.fe()||s.le.de(!0),s.p,s.reportPlaybackError(t,a.ErrorSeverity.FATAL),s.reportPlaybackEnded());},this.setContentInfo=function(t){m.Ht(t)<=0||s.le&&(s.p,s.le.Se(t));},this.setPlayerInfo=function(t){m.Ht(t)<=0||s.le&&(s.p,s.le.Se(t));},this.reportPlaybackMetric=function(){0!==arguments.length&&(1===arguments.length?s.Oe(arguments[0]):2===arguments.length?s.Oe(arguments[0],arguments[1]):3===arguments.length?s.Oe(arguments[0],arguments[1],arguments[2]):4===arguments.length&&s.Oe(arguments[0],arguments[1],arguments[2],arguments[3]));},this.reportPlaybackError=function(t,n){s.le&&m.Pt(t)&&(s.p,t=new L(t,n),s.le.di(t));},this.reportPlaybackEvent=function(t,n){if(m.Pt(t)&&s.le&&(s.p,s.le))switch(t){case g.Events.USER_WAIT_STARTED:case g.Events.BUMPER_VIDEO_STARTED:s.le.Mt();break;case g.Events.USER_WAIT_ENDED:case g.Events.BUMPER_VIDEO_ENDED:s.le.Vt();break;default:s.le.ge(t,n);}},this.setCallback=function(t){s.p,s.le&&s.le.Ne(t);},this.reportAdBreakStarted=function(t,n,i){s.le&&(s.p,s.le.Ce(t,n,i));},this.reportAdBreakEnded=function(){s.le&&(s.p,s.le.ye());},this.setPlayer=function(t,n){var i,e;void 0!==t&&(n&&(i=n[g.CONVIVA_MODULE],e=n[g.MEDIA_ELEMENT]),'undefined'!==typeof i?lt.ProxyMonitor=i.ProxyMonitor:'undefined'!==typeof ConvivaModule&&(lt.ProxyMonitor=ConvivaModule.ProxyMonitor),'undefined'!==typeof lt.ProxyMonitor)&&(s.p,!t&&s.pe?(lt.ProxyMonitor.release(s.pe),s.pe=null):t?(s.pe&<.ProxyMonitor.release(s.pe),s.p,s.pe='undefined'!==typeof e?lt.ProxyMonitor.initConvivaDropIn(t,e,s.T,this,lt):lt.ProxyMonitor.initConvivaDropIn(t,s.T,this,lt)):'undefined'!==typeof e&&(s.pe=lt.ProxyMonitor.initConvivaDropIn(t,e,s.T,this,lt)));},this.setAdAnalytics=function(t){t?s.getAdType()&&(s.getAdType()===g.AdType.SERVER_SIDE?s.ae=t.getAdPlayerMonitor():s.getAdType()===g.AdType.CLIENT_SIDE&&s.p):s.ae=null;},this.configureExistingSession=function(t){t!==g.NO_SESSION_KEY&&s.le&&(s.p,s.le.sr(t));},this.getSessionId=function(){return s.le?(s.p,s.le.Xt()):g.NO_SESSION_KEY;},this.getClientId=function(){return s.le?(s.p,s.le.Qt()):null;},this.Te=function(){return s.p,this.le;},this.getAdType=function(){return s.le?s.le.we:null;},this.me=function(){return s.le?s.le.Re:null;},v.prototype=Object.create(w.prototype),v.prototype.constructor=v;},U.JsonParse=(k={'\"':'\"','\\\\':'\\\\','/':'/','b':'\\b','f':'\\f','n':'\\n','r':'\\r','t':'\\t'},o=function(t){throw{name:'SyntaxError',message:t,at:n,text:V};},r=function(t){return t&&t!==s&&o('Expected \\''+t+'\\' instead of \\''+s+'\\''),s=V.charAt(n),n+=1,s;},F=function(){var t,n,i,e='';if('\"'===s)for(;r();){if('\"'===s)return r(),e;if('\\\\'===s)if(r(),'u'===s){for(n=i=0;n<4&&(t=parseInt(r(),16),isFinite(t));n+=1)i=16*i+t;e+=String.fromCharCode(i);}else{if('string'!==typeof k[s])break;e+=k[s];}else e+=s;}o('Bad string');},e=function(){for(;s&&s<=' ';)r();},u=function(){switch(e(),s){case'{':var t,n={};if('{'===s){if(r('{'),e(),'}'===s)return r('}'),n;for(;s;){if(t=F(),e(),r(':'),Object.hasOwnProperty.call(n,t)&&o('Duplicate key \"'+t+'\"'),n[t]=u(),e(),'}'===s)return r('}'),n;r(','),e();}}return void o('Bad object');case'[':var i=[];if('['===s){if(r('['),e(),']'===s)return r(']'),i;for(;s;){if(i.push(u()),e(),']'===s)return r(']'),i;r(','),e();}}return void o('Bad array');case'\"':return F();case'-':return ft();default:return(s>='0'&&s<='9'?ft:function(){switch(s){case't':return r('t'),r('r'),r('u'),r('e'),!0;case'f':return r('f'),r('a'),r('l'),r('s'),r('e'),!1;case'n':return r('n'),r('u'),r('l'),r('l'),null;}o('Unexpected \\''+s+'\\'');})();}},function(t,r){return V=t,n=0,s=' ',t=u(),e(),s&&o('Syntax error'),'function'===typeof r?function t(n,i){var e,s,o=n[i];if(o&&'object'===typeof o)for(e in o)Object.hasOwnProperty.call(o,e)&&(void 0!==(s=t(o,e))?o[e]=s:delete o[e]);return r.call(n,i,o);}({'':t},''):t;}),A=U.JSON2={},'function'!==typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+'-'+t(this.getUTCMonth()+1)+'-'+t(this.getUTCDate())+'T'+t(this.getUTCHours())+':'+t(this.getUTCMinutes())+':'+t(this.getUTCSeconds())+'Z':null;},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf();}),'function'!==typeof A.stringify&&(E=/[\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,Q={'\\b':'\\\\b','\\t':'\\\\t','\\n':'\\\\n','\\f':'\\\\f','\\r':'\\\\r','\"':'\\\\\"','\\\\':'\\\\\\\\'},A.stringify=function(t,n,i){var e;if(R=_='','number'===typeof i)for(e=0;e=0;i--)n+=O.ur.charAt(t>>4*i&15);return n;},ar:function(t){for(var n=1+(t.length+8>>6),i=new Array(16*n),e=0;e<16*n;e++)i[e]=0;for(e=0;e>2]|=t.charCodeAt(e)<<24-e%4*8;return i[e>>2]|=128<<24-e%4*8,i[16*n-1]=8*t.length,i;},cr:function(t,n){var i=(65535&t)+(65535&n);return(t>>16)+(n>>16)+(i>>16)<<16|65535&i;},lr:function(t,n){return t<>>32-n;},dr:function(t,n,i,e){return t<20?n&i|~n&e:!(t<40)&&t<60?n&i|n&e|i&e:n^i^e;},vr:function(t){return t<20?1518500249:t<40?1859775393:t<60?-1894007588:-899497514;},Er:function(t){for(var n='',i=0;i=0||this.getAllResponseHeaders().indexOf('X-Cache')>=0)?_.fc('Akamai','header','X-Cache',''+this.getResponseHeader('X-Cache'),''+this.status):_.fc('null','header','null','null',''+this.status));},t.send()):_.p.info('xmlhttpreq is not available here to fetch CDN Server Ip');}catch(t){_.p.info('Exception caught in makeAkamaiHeadRequest');}},this.fc=function(t,n,i,e,s){var o={},r={};_.mf!==t&&(null!==_.mf&&(r[N.Lu]=_.mf),_.mf=t,null===_.mf?o[N.Lu]='null':o[N.Lu]=_.mf),_.Df!==n&&(null!==_.Df&&(r[N.Mu]=_.Df),_.Df=n,null===_.Df?o[N.Mu]='null':o[N.Mu]=_.Df),_.Pf!==i&&(null!==_.Pf&&(r[N.Uu]=_.Pf),_.Pf=i,null===_.Pf?o[N.Uu]='null':o[N.Uu]=_.Pf),_.bf!==e&&(null!==_.bf&&(r[N.Vu]=_.bf),_.bf=e,null===_.bf?o[N.Vu]='null':o[N.Vu]=_.bf),_.Lf!==s&&(null!==_.Lf&&(r[N.ku]=_.Lf),_.Lf=s,null===_.Lf?o[N.ku]='null':o[N.ku]=_.Lf),'{}'!==JSON.stringify(o)&&_.lc(o,r);},this.dc=function(t){var n=_.yn;n!==t&&t>0&&(_.p.info('Change bitrate from '+n+' to '+t),_.vc(n,t),_.yn=t);},this.Ec=function(t){var n=_.Dn;n!==t&&t>0&&(_.p.info('Change Avg bitrate from '+n+' to '+t),_._c(n,t),_.Dn=t);},this.wa=function(t){var n=_.gi;n!==t&&t>=0&&(_.p.info('Change dropped frames total from '+n+' to '+t),_.Rc(n,t),_.gi=t);},this.wo=function(t){var n=_.$a,i=t+(-1===_.$a?0:_.$a);n!==t&&i>=0&&(_.p.info('Change dropped frames count from '+n+' to '+i),_.Ac(n,i),_.$a=i);},this.oa=function(t){var n=_.tf;n!==t&&t&&(_.p.info('Change resource from '+n+' to '+t),_.tf=t);},this.xh=function(t){_._n!==t&&t&&(_.p.info('Change assetName from '+_._n+' to '+t),_._n=t);},this.Vh=function(t){var n=_.Ms;n!==t&&m.ie(t)&&(_.p.info('Change isLive from '+n+' to '+t),_.Ms=t);},this.Yh=function(t){var n=_.Tn;n!==t&&t&&(_.p.info('Change viewerId from '+n+' to '+t),_.Tn=t);},this.qh=function(t){var n=_.bs;n!==t&&t&&(_.p.info('Change playerName from '+n+' to '+t),_.bs=t);},this.Jh=function(t){var n=_.nf;!m.Tc(n,t)&&t&&(_.p.info('Change tags from '+m.Sc(n)+' to '+m.Sc(t)),_.nf=t);},this.ra=function(t){_.Ct.encodedFrameRate>0||(_.p.debug('setEncodedFrameRate(): '+t),_.wn=t);},this.ia=function(t){_.Ct.duration>0||(_.p.debug('setContentLength(): '+t),_.Ls=t);},this.Xe=function(t){var n;_.Tf||t!==I.PlayerState.PLAYING||(_.Tf=!0,m.Pt(_.Ct.viewerId)||_.p.error('Missing viewerId. viewerId should be updated before first frame is rendered.'),m.Pt(_.Ct.streamType)&&c.StreamType.UNKNOWN!==_.Ct.streamType||_.p.error('Missing streamType - Live or VOD. streamType should be updated before first frame is rendered.'),m.Pt(_.Ct.applicationName))||_.p.error('Missing applicationName. applicationName should be updated before first frame is rendered.'),_.Pn!==t&&(n=_.Pn,_.p.info('setPlayerState(): changing player state from '+n+' to '+t),_.Oc(n,t),_.Pn=t);},this.Nc=function(t){var n=_.Fn;n!==t&&t>0&&(_.p.debug('Change stream resolution width from '+n+' to '+t),_.gc(n,t),_.Fn=t);},this.Ic=function(t){var n=_.Bn;n!==t&&t>0&&(_.p.debug('Change stream resolution height from '+n+' to '+t),_.wc(n,t),_.Bn=t);},this.ba=function(t){var n=_.M;n!==t&&t&&(_.p.debug('Change network connection type from '+n+' to '+t),_.Cc(n,t),_.M=t);},this.La=function(t){var n=_.U;n!==t&&t&&(_.p.debug('Change network link encryption from '+n+' to '+t),_.yc(n,t),_.U=t);},this.ka=function(t){_.kf=!0,_.ec();var n=_.ho;n!==t&&m.Pt(t)&&(_.p.debug('Change CDN Server IP from '+n+' to '+t),_.mc(n,t),_.ho=t);},this.Ka=function(t){var n=_.jn;n!==t&&m.Pt(t)&&!_.ys.Dc&&(_.p.info('Change Audio Lang from '+n+' to '+t),_.Pc(n,t),_.jn=t);},this.Wa=function(t){var n=_.Kn;n!==t&&m.Pt(t)&&!_.ys.bc&&(_.p.info('Change Subtitle Lang from '+n+' to '+t),_.Lc(n,t),_.Kn=t);},this.Ya=function(t){var n=_.Wn;n!==t&&m.Pt(t)&&!_.ys.Mc&&(_.p.info('Change Closed Caption Lang from '+n+' to '+t),_.Uc(n,t),_.Wn=t);},this.Vc=function(t){var n;_.p.debug('togglePauseJoin()'),_.Af===t?_.p.debug('togglePauseJoin(): same value, ignoring'):(t=_.Af,n=!_.Af,_.kc(t,n),_.Af=!_.Af);},this.Fc=function(t,n){_.Bc(t,n);},this.Hc=function(t,n){var i,e;n[N.sh]=t,n[N.rh]=this.Ps(),n[N.oh]=this.Bf.Gc(),this.Ue&&(i=b.jc(this.Ue.getPHT(),0,null,-1),e=b.jc(this.Ue.getBufferLength(),0,null,-1),i>=0&&(n[N.pu]=i),e>0)&&(n[N.Au]=e),this.Bf.Kc(n),this.Ee._&&this.Ee._.Fs(t,n,this);},this.Wc=function(t){_.Ue=t,_.Ue?_.Yc():_.xc();},this.ic=function(){var t=this.Gf.pr(this.qc(),this.Ps());this.Bf.Kc(t);},this.Bc=function(t,n){var i={};i[N.qs]=t,i[N.Js]=n,this.Hc(N.xs,i);},this.vc=function(t,n){var i={},e={};t>0&&(e[N.Ys]=t),i[N.Ys]=n,this.lc(i,e);},this._c=function(t,n){var i={},e={};t>0&&(e[N.cu]=t),i[N.cu]=n,this.lc(i,e);},this.Jc=function(t,n){var i={};i[N.uh]=t,n>=0&&(i[N.hh]=n),this.Hc(N.yr,i);},this.gc=function(t,n){var i={},e={};-1!==t&&(e[N.Nu]=t),i[N.Nu]=n,this.lc(i,e);},this.wc=function(t,n){var i={},e={};-1!==t&&(e[N.gu]=t),i[N.gu]=n,this.lc(i,e);},this.Cc=function(t,n){var i={},e={};null!==t&&(e[N.Iu]=t),i[N.Iu]=n,this.lc(i,e);},this.yc=function(t,n){var i={},e={};null!==t&&(e[N.wu]=t),i[N.wu]=n,this.lc(i,e);},this.mc=function(t,n){var i={},e={};m.Pt(t)&&(e[N._h]=t),i[N._h]=n,this.lc(i,e);},this.Rc=function(t,n){var i={},e={};t>=0&&(e[N.Cu]=t),i[N.Cu]=n,this.lc(i,e);},this.Ac=function(t,n){var i={},e={};t>=0&&(e[N.yu]=t),i[N.yu]=n,this.lc(i,e);},this.Pc=function(t,n){var i={},e={};t!==n&&('string'===typeof t&&(e[N.mu]=t),i[N.mu]=n),this.lc(i,e);},this.Lc=function(t,n){var i={},e={};t!==n&&('string'===typeof t&&(e[N.Du]=t),i[N.Du]=n),this.lc(i,e);},this.Uc=function(t,n){var i={},e={};t!==n&&('string'===typeof t&&(e[N.Pu]=t),i[N.Pu]=n),this.lc(i,e);},this.kc=function(t,n){var i={},e={};e[N.fu]=t,i[N.fu]=n,this.lc(i,e);},this.Oc=function(t,n){var i={},e={};i[N.Gs]=N.Rh(n),e[N.Gs]=N.Rh(t),this.lc(i,e);},this.lc=function(t,n){var i={};i[N.Hs]=t,n&&m.Ht(n)>0&&(i[N.ah]=n),this.Hc(N.Bs,i);},this.Xc=function(t,n){var i={};i[N.Qs]=t,m.Ht(n)>0&&(i[N.Zs]=n),this.Hc(N.Xs,i);},this.sc=function(){_.qa&&(_.qa(),_.qa=null);},this.uc=function(){_.sc();var t=1e3*_.Vi.heartbeatInterval;_.qa=_._e.create(_.oc,t,'Session.sendHeartbeat:'+this.xf);},this.xc=function(){_.Nf&&(_.Nf(),_.Nf=null);},this.Yc=function(){_.xc(),_.Nf=_._e.create(_.Qc,_.gf,'Session.startRfpsTimer');},this.Zc=function(){var t={err:'pending'};t.seq=_.Ja-1,t.sentAt=_.Ps(),t.rtt=-1,_.Za.push(t);for(var n=0;n<_.Za.length;n++)'ok'===(t=_.Za[n]).err&&(_.Za.splice(n,1),n--);},this.zc=function(t,n){for(var i=0;i<_.Za.length;i++){var e=_.Za[i];e.seq===t&&(e.rtt=_.Ps()-e.sentAt,e.err=n);}},this.$c=function(t){for(var n=0;n<_.Za.length;n++){var i=_.Za[n];i.seq===t&&(i.rtt=_.Ps()-i.sentAt,i.err='ok');}},this.tl=function(){for(var t,n,i=_.Kf.get(y.nl),e=[],s=-1,o=0;o<_.Za.length;o++)if('ok'===(n=_.Za[o]).err){s=n.seq;break;}for(var r=0;r<_.Za.length;r++)((t=(n=_.Za[r]).seq)<_.Ja-i||t0&&s.Jh(_.nf),_.Cs()||_.qf()){_.qf()&&s.Ma(),_._n&&s.xh(_._n),s.Xh(_.Xa);o=N.Rh(_.Pn),o=(s.Xe(o),s.na(_.Af),_.bs&&s.qh(_.bs),m.ie(_.Ms)&&s.Vh(_.Ms),_.Ls>0&&s.ia(_.Ls),_.yn>0&&s.ea(_.yn),_.Dn>0&&s.sa(_.Dn),null!==_.tf&&s.oa(_.tf),_.wn>0&&s.ra(_.wn),_.Ue&&(n=b.jc(_.Ue.getPHT(),0,null,-1),i=b.jc(_.Ue.getBufferLength(),0,null,-1)),m.gt(_.Ee.V)?t=_.Ee.V:_.Ue&&(t=_.Ue.getSignalStrength()),n>=0&&s.Ca(n),i>0&&s.ya(i),_.sl());if(o>0&&s.ua(o),_.wf>0&&s.aa(b.jc(_.wf,0,null,-1)),_.If>0&&s.ha(b.jc(_.If,0,null,-1)),t!==I.DEFAULT_SIGNAL_STRENGTH&&s.Ua(t),_.On&&s.ma(_.On),_.Fn>0&&s.Da(_.Fn),_.Bn>0&&s.Pa(_.Bn),_.gi>-1&&s.wa(_.gi),_.$a>-1&&(s.wo(_.$a),_.$a>0)&&(_.Ac(_.$a,0),_.$a=0),_.jn&&s.Ka(_.jn),_.Kn&&s.Wa(_.Kn),_.Wn&&s.Ya(_.Wn),'undefined'!==typeof _.pf)for(var r in _.pf)s.Ph(r,_.pf[r]);}else s.Xh(N.Sh.Oh);return e.length>0&&s.Zh(e),s.Qh(_.Qa),s.zh(!0),_.Kf.get(y.ol)&&s.$h(_.Fi.Wf()),_.Kf.get(y.nl)>0&&(n=_.il()).length>0&&s.ta(n),0===_.Ja&&(s=_.rl(s)),(s=0!==_.Ja?_.ul(s):s).Uh(_.Ds),s.Mh(_.Ps()),_.Vf&&(s.Fa(_.mf),s.Ba(_.Df),s.Ha(_.Pf),s.Ga(_.bf),s.ja(_.Lf)),_.Ja++,s.get();},this.ul=function(t){var n,i=_.D,e={};for(n in t.Dh.tags)Object.prototype.hasOwnProperty.call(i,n)||(e[n]=t.Dh.tags[n]);t.Dh.tags=e,_.D={};for(var s=0;s<_.Cf.length;s++)Object.prototype.hasOwnProperty.call(_.Ee.D,_.Cf[s])?Object.prototype.hasOwnProperty.call(_.Ee.L,_.Cf[s])?_.Ee.L[_.Cf[s]]===y.$t.tn?(_.D[y.hl+''+_.Cf[s]]=y.$t.tn,_.Ee.P('End-user chose to opt-out of personal data collection')):_.Ee.L[_.Cf[s]]===y.$t.en?(_.D[y.hl+''+_.Cf[s]]=y.$t.en,_.Ee.P('End-user chose to opt-out of personal data collection')):_.Ee.L[_.Cf[s]]===y.$t.zt?(_.D[y.hl+''+_.Cf[s]]=y.$t.zt,_.Ee.P('End-user used privacy settings and chose to opt-out of personal data collection')):(_.D[y.hl+''+_.Cf[s]]=_.Ee.D[_.Cf[s]],_.Ee.P('Data collection successful')):(_.D[y.hl+''+_.Cf[s]]=_.Ee.D[_.Cf[s]],_.Ee.P('Data collection successful')):_.D[y.hl+''+_.Cf[s]]=y.$t.al;var o,r={};for(o in i){var u=o.split('.');'{}'!==JSON.stringify(_.Cf)&&-1!==_.Cf.indexOf(''+u[2])||i[y.hl+''+u[2]]===y.$t.fl||(_.Ee.P('Data collection restricted from Conviva back-end'),_.D[y.hl+''+u[2]]=y.$t.fl,r[y.hl+''+u[2]]=y.$t.fl);}if('{}'!==JSON.stringify(_.D)){var h,a=m.ll(_.D);for(h in t.Dh.tags)a[h]=t.Dh.tags[h];if(t.Dh.tags=a,!m.Tc(i,_.D)){var f={};if('{}'!==JSON.stringify(r)&&(f[N.su]=r),'{}'!==JSON.stringify(i)){for(var c in i)_.D[c]&&i[c]!==_.D[c]&&(f[N.su]||(f[N.su]={}),f[N.su][c]=_.D[c]);for(var l in _.D)Object.prototype.hasOwnProperty.call(i,l)&&i[l]===_.D[l]||(f[N.su]||(f[N.su]={}),f[N.su][l]=_.D[l]);}'{}'===JSON.stringify(i)&&(f[N.su]=_.D);var d,v,E={};E[N.Hs]=f,E[N.sh]=N.Bs,E[N.rh]=_.Ps(),E[N.oh]=_.Bf.Gc(),_.Ue&&(d=b.jc(_.Ue.getPHT(),0,null,-1),v=b.jc(_.Ue.getBufferLength(),0,null,-1),d>=0&&(E[N.pu]=d),v>0)&&(E[N.Au]=v),t.Dh.evs||(t.Dh.evs=[]),t.Dh.evs.push(E);}}return t;},this.rl=function(t){var n=_.dl();if('{}'!==JSON.stringify(n)){var i,e=m.ll(n);for(i in t.Dh.tags)e[i]=t.Dh.tags[i];t.Dh.tags=e;var s,o={},n=(o[N.su]=n,{});n[N.Hs]=o,n[N.sh]=N.Bs,n[N.rh]=_.Ps(),n[N.oh]=_.Bf.Gc(),_.Ue&&(o=b.jc(_.Ue.getPHT(),0,null,-1),s=b.jc(_.Ue.getBufferLength(),0,null,-1),o>=0&&(n[N.pu]=o),s>0)&&(n[N.Au]=s),t.Dh.evs||(t.Dh.evs=[]),t.Dh.evs.push(n);}return t;},this.dl=function(){var t={};if('undefined'!==typeof navigator&&navigator){if(t['c3.fp.cookie']='undefined'!==typeof navigator.cookieEnabled&&navigator.cookieEnabled?''+navigator.cookieEnabled:'',t['c3.fp.memory']='undefined'!==typeof navigator.deviceMemory&&navigator.deviceMemory?''+navigator.deviceMemory:'',t['c3.fp.hwConc']='undefined'!==typeof navigator.hardwareConcurrency&&navigator.hardwareConcurrency?''+navigator.hardwareConcurrency:'',t['c3.fp.java']=''+('function'!==typeof navigator.javaEnabled)?'false':navigator.javaEnabled(),t['c3.fp.lang']='undefined'!==typeof navigator.language&&navigator.language?''+navigator.language:'',t['c3.fp.langs']='undefined'!==typeof navigator.languages&&navigator.languages&&navigator.languages.length>0?''+navigator.languages.toString():'',t['c3.fp.maxTp']='undefined'!==typeof navigator.maxTouchPoints&&navigator.maxTouchPoints?''+navigator.maxTouchPoints:'',t['c3.fp.plugins']='','undefined'!==typeof navigator.plugins&&navigator.plugins&&navigator.plugins.length>0)for(var n=0;n0)for(var i=0;i=0?navigator.maxTouchPoints:0,'undefined'!==typeof navigator.product&&navigator.product?navigator.product.length:0),t.fillStyle='rgba(102, 204, 0, 0.7)',t.fillText(n,'undefined'!==typeof navigator.deviceMemory&&navigator.deviceMemory?navigator.deviceMemory:0,'undefined'!==typeof navigator.hardwareConcurrency&&navigator.hardwareConcurrency?navigator.hardwareConcurrency:0),O._r(i.toDataURL());}return'';}catch(t){return'';}},this.oc=function(){var t;_.Sf||(t=_.el())&&_.El(t);},this.Qc=function(){var t;_.Pn===I.PlayerState.PLAYING&&_.Ue&&(t=_.Ue.getRenderedFrameRate())>0&&(_.wf+=t,_.If++);},this.sl=function(){return _.wf>0&&_.If>0||(this.Qc(),_.wf>0&&_.If>0)?m._l.Cast(+_.wf/_.If):I.DEFAULT_RENDERED_FRAME_RATE;},this.El=function(t){_.Zc();var i=_.Ja-1;_.p.info('postHeartbeat(): Send HB['+i+']'+_.Jf());_.Hf.Rl(t,function(t,n){_.pl(t,n,i);});},this.pl=function(i,e,s){_.Sf||_.g.F('onHeartbeatResponse',function(){var t,n;i?e?(_.p.debug('onHeartbeatResponse(): received valid response for HB['+s+']'),_.$c(s),(t=e[N.Lr])&&t!==(n=_.Kf.get(y.B))&&(_.p.debug('onHeartbeatResponse(): setting the client id to '+t+' (from gateway)'),_.Kf.set(y.B,t),_.Kf.Al(),n===N.H)&&t!==N.H&&_.Ee.k(),(n=e[N.Pr])&&n!==N.Dr&&_.p.error('onHeartbeatResponse(): error from gateway: '+n),'object'===typeof(t=e[N.Mr])&&((n=t[N.Vr])>=0&&_.Kf.get(y.nl)!==n&&(_.p.debug('onHeartbeatResponse(): setting Maximum Heartbeat Infos to '+n+' (from gateway)'),_.Kf.set(y.nl,n)),n=t[N.kr],(n=!!m.ie(n)&&n)!==_.Kf.get(y.ol)&&(_.p.debug('onHeartbeatResponse(): turning '+(n?'on':'off')+' sending of logs'),_.Kf.set(y.ol,n)),n=t[N.Fr],m.gt(n)&&(n=m._l.Cast(n))!==_.Vi.heartbeatInterval&&(_.p.debug('onHeartbeatResponse(): received hbIntervalMs from gateway: '+n),_.Vi.heartbeatInterval=n,_.qa)&&_.uc(),(n=t[N.Br])&&n!==_.Vi.gatewayUrl&&(_.p.debug('onHeartbeatResponse(): received gatewayUrl from gateway: '+n),_.Vi.gatewayUrl=n),_.Tl()||(_.Cf={},(n=t[N.Hr])&&(_.yf||(_.yf=!0),_.p.debug('onHeartbeatResponse(): received fp from gateway: '+n),_.Cf=n.split(',')),_.Vf=t[N.Gr],m.ie(_.Vf)&&(_.Vf?(_.p.debug('onHeartbeatResponse(): enabling the CDN Server IP collection'),_.Mf||_.hc()):_.ec())))):_.p.warning('onHeartbeatResponse(): decoded heartbeat response is null.'):(m.Pt(n=e)?m.Sl(n,'HTTP timeout')?_.p.warning('onHeartbeatResponse(): '+n):_.p.error('onHeartbeatResponse(): failed to send heartbeat: '+n):(n=$.Ol,_.p.error('onHeartbeatResponse(): '+n)),_.zc(s,n));});},this.Ps=function(){return m._l.Cast(_.jf.current()-_.Ds);},this.qc=function(){return this.Bf.Gc();},this.Jf=function(){return this.ks()?' (global session)':'';},this.ks=function(){return this.xf===C.Nt.Oh;},this.Tl=function(){return this.xf===C.Nt.Oh&&'T'===this.nf['c3.IPV4IPV6GlobalSession'];},this.Cs=function(){return this.xf===C.Nt.Ot;},this.qf=function(){return this.xf===C.Nt.Dt;},this.Lt=function(t){_.Nl(t),_.Zf();},this.Nl=function(t){var n={},i={};if(m.Pt(t.assetName)&&!_.ys.gl&&(_.Ct.assetName!==t.assetName?(_.Ct.assetName&&(n[N.iu]=_.Ct.assetName),i[N.iu]=t.assetName,_.Ct.assetName=t.assetName):_.p.warning('mergeContentMetadata(): assetName was not changed.')),m.Pt(t.applicationName)&&(_.Ct.applicationName!==t.applicationName?(_.Ct.applicationName&&(n[N.eu]=_.Ct.applicationName),i[N.eu]=t.applicationName,_.Ct.applicationName=t.applicationName):_.p.warning('mergeContentMetadata(): applicationName was not changed.')),m.Pt(t.streamUrl)&&!_.ys.Il&&(_.Ct.streamUrl!==t.streamUrl?(_.Ct.streamUrl&&(n[N.Tu]=_.Ct.streamUrl),i[N.Tu]=t.streamUrl,_.Ct.streamUrl=t.streamUrl,_.On=_.Ct.streamUrl):_.p.warning('mergeContentMetadata(): streamUrl was not changed.')),m.Pt(t.viewerId)&&(_.Ct.viewerId!==t.viewerId?(_.Ct.viewerId&&(n[N.nu]=_.Ct.viewerId),i[N.nu]=t.viewerId,_.Ct.viewerId=t.viewerId):_.p.warning('mergeContentMetadata(): viewerId was not changed.')),m.Pt(t.defaultResource)&&!_.ys.wl&&(_.Ct.defaultResource!==t.defaultResource?(_.Ct.defaultResource&&(n[N.Ru]=_.Ct.defaultResource),i[N.Ru]=t.defaultResource,_.Ct.defaultResource=t.defaultResource):_.p.warning('mergeContentMetadata(): defaultResource was not changed.')),m.gt(t.duration)&&t.duration>0&&!_.ys.Cl&&(_.Ct.duration!==t.duration?(_.Ls>0&&(n[N.lu]=_.Ls),i[N.lu]=t.duration,_.Ct.duration=t.duration,_.Ls=_.Ct.duration):_.p.warning('mergeContentMetadata(): duration was not changed.')),m.gt(t.encodedFrameRate)&&t.encodedFrameRate>0&&!_.ys.yl&&(_.Ct.encodedFrameRate!==t.encodedFrameRate?(_.Ct.encodedFrameRate>-1&&(n[N.du]=_.Ct.encodedFrameRate),i[N.du]=t.encodedFrameRate,_.Ct.encodedFrameRate=t.encodedFrameRate,_.wn=_.Ct.encodedFrameRate):_.p.warning('mergeContentMetadata(): encodedFrameRate was not changed.')),t.streamType!==c.StreamType.UNKNOWN&&(_.Ct.streamType!==t.streamType?(_.Ct.streamType!==c.StreamType.UNKNOWN&&(_.Ct.streamType===c.StreamType.LIVE?n[N.qr]=!0:n[N.qr]=!1),t.streamType===c.StreamType.LIVE?i[N.qr]=!0:i[N.qr]=!1,_.Ct.streamType=t.streamType):_.p.warning('mergeContentMetadata(): streamType was not changed.')),m.Ht(t.custom)>0){var e,s={},o={};for(e in t.custom)_.Ct.custom[e]!==t.custom[e]?(s[e]=t.custom[e],_.Ct.custom[e]&&(o[e]=_.Ct.custom[e]),_.Ct.custom[e]=t.custom[e]):_.p.info('mergeContentMetadata(): custom.'+e+' was not changed.');m.Ht(s)>0?(m.Ht(o)>0&&(n[N.su]=o),i[N.su]=s):_.p.warning('mergeContentMetadata(): custom was not changed.');}m.Ht(i)>0&&this.lc(i,n);},this.Zf=function(){var t;_.p.debug('setStatesFromContentMetadata()'),_.Ct.defaultResource&&this.oa(_.Ct.defaultResource),_.Ct.streamUrl&&this.ma(_.Ct.streamUrl),_.Ct.duration>0&&this.ia(_.Ct.duration),_.Ct.encodedFrameRate>0&&this.ra(_.Ct.encodedFrameRate),_.Ct.streamType!==c.StreamType.UNKNOWN&&(t=_.Ct.streamType===c.StreamType.LIVE,this.Vh(t)),_.Ct.assetName&&this.xh(_.Ct.assetName),_.Ct.viewerId&&this.Yh(_.Ct.viewerId),(_.Ct.applicationName||_.Ct.playerName)&&this.qh(_.Ct.applicationName||_.Ct.playerName),m.Ht(_.Ct.custom)>0&&this.Jh(_.Ct.custom);},this.zf=function(){var t={};if(this.ks()||(_.Ct.assetName?t[N.iu]=_.Ct.assetName:_.p.warning('enqueueEventForContentMetadata(): assetName was not set.'),_.Ct.applicationName?t[N.eu]=_.Ct.applicationName:_.p.warning('enqueueEventForContentMetadata(): applicationName was not set.'),_.Ct.streamUrl?t[N.Tu]=_.Ct.streamUrl:_.p.warning('enqueueEventForContentMetadata(): streamUrl was not set.'),_.Ct.viewerId?t[N.nu]=_.Ct.viewerId:_.p.warning('enqueueEventForContentMetadata(): viewerId was not set.'),_.Ct.defaultResource?t[N.Ru]=_.Ct.defaultResource:_.p.warning('enqueueEventForContentMetadata(): defaultResource was not set.'),_.Ct.duration>-1?t[N.lu]=_.Ct.duration:_.p.warning('enqueueEventForContentMetadata(): duration was not set.'),_.Ct.encodedFrameRate>-1?t[N.du]=_.Ct.encodedFrameRate:_.p.warning('enqueueEventForContentMetadata(): encodedFrameRate was not set.'),_.Ct.streamType!==c.StreamType.UNKNOWN?_.Ct.streamType===c.StreamType.LIVE?t[N.qr]=!0:t[N.qr]=!1:_.p.warning('enqueueEventForContentMetadata(): streamType was not set.')),m.Ht(_.Ct.custom)>0)for(var n in t[N.su]={},_.Ct.custom)t[N.su][n]=_.Ct.custom[n];else this.ks()||_.p.warning('enqueueEventForContentMetadata(): custom tags were not set.');m.Ht(t)>0&&this.lc(t,null);},this.tc=function(){_.Ct&&m.Pt(_.Ct.assetName)||_.p.warning('Missing assetName during session creation'),_.Ct&&m.Pt(_.Ct.defaultResource)||_.p.warning('Missing resource during session creation'),_.Ct&&m.Pt(_.Ct.streamUrl)||_.p.warning('Missing streamUrl during session creation'),(!_.Ct||_.Ct.encodedFrameRate<=0)&&_.p.warning('Missing encodedFrameRate during session creation'),_.Ct&&m.Pt(_.Ct.viewerId)||_.p.warning('Missing viewerId during session creation'),_.Ct&&_.Ct.streamType&&c.StreamType.UNKNOWN!==_.Ct.streamType||_.p.warning('Missing streamType during session creation'),_.Ct&&m.Pt(_.Ct.applicationName)||_.p.warning('Missing applicationName during session creation'),(!_.Ct||_.Ct.duration<=0)&&_.p.warning('Missing duration during session creation');},this.Zt=function(t,n){_.pf||(_.pf={}),_.pf[t]=n;},this.$f=function(){var t={};_.Ee.M&&(t[N.Iu]=_.Ee.M,_.M=_.Ee.M),_.Ee.U&&(t[N.wu]=_.Ee.U,_.U=_.Ee.U),m.Ht(t)>0&&this.lc(t,null);};}).xa=N.Sh.Ot+N.Sh.Nh+N.Sh.gh,C.Nt={Ot:'Video',Oh:'Global',Dt:'Ad'},($=U.Session=function(){var e=this;e.Ue=null,e.C=0,e.xf=C.Nt.Ot,e.ml=!1,e.Sf=!1,e.Dl=!1,e.Pl=null,e.Re=null,e.bl=null,e.Ll=!1,e.Ml=I.PlayerState.NOT_MONITORED,e.Ul=!1,e.Vl=!1,e.kl=!1,e.yl=!1,e.Fl=!1,e.bc=!1,e.Mc=!1,e.Dc=!1,e.gl=!1,e.Il=!1,e.Bl=!1,e.Cl=!1,e.wl=!1,e.Hl=!1,function(t,n,i,e,s,o,r){this.C=t,this.xf=n,this.Kf=i,this.Gl=e,this.wt=s,this.g=o,this.p=r;}.apply(e,arguments),this.Yf=function(t,n){e.wt.Yf(this),t&&e.Vt(t),e.Kf.jl()?e.Kl(n):e.Kf.Wl(function(){e.Kl(n);});},this.cleanup=function(){e.ml=!0,e.wt.Xf(),e.Kf.jl()?e.Yl():e.Kf.Wl(function(){e.Yl();});},this.xl=function(){(e.Cs()||e.qf())&&e.Ue&&e.ql(),e.g=null,e.Ee=null,e.Kf=null,e.Gl=null,e.wt.Tt(),e.wt=null,e.Sf=!0;},this.Yl=function(){e.wt.nc(),e.xl();},this.Kl=function(t){e.wt.Qf(),e.Jl(),t?(e.bt(t.nr(),t.ir()),e.wt.Xe(I.PlayerState.STOPPED),e.wt.nc(),e.xl()):e.wt.rc();},this.Jl=function(){var t=e.Gl.get(),n=t[M.BROWSER_NAME],n=(n&&e.wt.ca(n),t[M.BROWSER_VERSION]),n=(n&&e.wt.la(n),t[M.DEVICE_BRAND]),n=(n&&e.wt.da(n),t[M.DEVICE_MANUFACTURER]),n=(n&&e.wt.va(n),t[M.DEVICE_MODEL]),n=(n&&e.wt.Ea(n),t[M.DEVICE_TYPE]),n=(n&&e.wt._a(n),t[M.DEVICE_VERSION]),n=(n&&e.wt.Ra(n),t[M.FRAMEWORK_NAME]),n=(n&&e.wt.pa(n),t[M.FRAMEWORK_VERSION]),n=(n&&e.wt.Aa(n),t[M.OPERATING_SYSTEM_NAME]),n=(n&&e.wt.Ta(n),t[M.OPERATING_SYSTEM_VERSION]),n=(n&&e.wt.Sa(n),t[M.DEVICE_CATEGORY]),n=(n&&e.wt.Oa(n),t[M.SCREEN_WIDTH]),n=(n&&e.wt.Na(n),t[M.SCREEN_HEIGHT]),n=(n&&e.wt.ga(n),t[M.SCALE_FACTOR]);n&&e.wt.Ia(n);},this.Ei=function(t){e.wt.Pn===t||(e.wt.Pn===I.PlayerState.NOT_MONITORED&&t!==I.PlayerState.NOT_MONITORED&&(e.Ml=t),e.Ll)||e.wt.Xe(t);},this._i=function(t){e.Ul||e.wt.dc(t);},this.Ri=function(t){e.Ul||e.wt.Ec(t);},this.Ii=function(t){e.Vl||e.wt.wa(t);},this.wi=function(t){e.Vl||e.wt.wo(t);},this.pi=function(t,n){!m.gt(n)&&e.Hl&&(n=-1),e.wt.Jc(t,n);},this.qn=function(t){t>0&&(e.yl||e.wt.ra(t));},this.Qn=function(t){t>0&&(e.Cl||e.wt.ia(t));},this.Zn=function(t){e.wt.ma(t);},this.Ai=function(t){e.wt.Nc(t);},this.Ti=function(t){e.wt.Ic(t);},this.nt=function(t){e.wt.ba(t);},this.et=function(t){e.wt.La(t);},this.ni=function(t){e.wt.Us()||e.wt.pa(t);},this.ei=function(t){e.wt.Vs()||e.wt.Aa(t);},this.Oi=function(t){e.wt.ka(t);},this.oi=function(t){e.wt.Ka(t);},this.ui=function(t){e.wt.Wa(t);},this.ai=function(t){e.wt.Ya(t);},this.Si=function(t,n){e.bt(t,n);},this.Yn=function(){e.ql();},this.Wt=function(t,n,i){e.Dl||(e.Dl=!0,e.Pl=t,e.Re=n,e.bl=i,e.wt.Vc(!0),e.Pl===a.AdStream.CONTENT||e.Re===a.AdPlayer.SEPARATE?(e.wt.Pn!==I.PlayerState.NOT_MONITORED&&(e.Ml=e.wt.Pn),e.wt.Xe(I.PlayerState.NOT_MONITORED),e.Ll=!0):e.Pl===a.AdStream.SEPARATE&&e.Re===a.AdPlayer.CONTENT&&(e.wt.Pn!==I.PlayerState.NOT_MONITORED&&(e.Ml=e.wt.Pn),e.wt.Xe(I.PlayerState.NOT_MONITORED),e.Ll=!0,e.Ul=!0,e.Vl=!0,e.yl=!0,e.kl=!0,e.bc=!0,e.Mc=!0,e.Dc=!0,e.gl=!0,e.Il=!0,e.Bl=!0,e.Cl=!0,e.wl=!0,e.Hl=!0));},this.Yt=function(){e.Dl&&(e.wt.Vc(!1),e.Pl===a.AdStream.CONTENT||e.Re===a.AdPlayer.SEPARATE?e.Xl||(e.Ll=!1,e.wt.Xe(e.Ml)):e.Pl===a.AdStream.SEPARATE&&e.Re===a.AdPlayer.CONTENT&&(e.Ul=!1,e.Vl=!1,e.yl=!1,e.kl=!1,e.Fl=!1,e.Xl||(e.Ll=!1,e.wt.Xe(e.Ml)),e.bc=!1,e.Mc=!1,e.Dc=!1,e.gl=!1,e.Il=!1,e.Bl=!1,e.Cl=!1,e.wl=!1,e.Hl=!1),e.Dl=!1,e.Pl=e.Re=e.bl=null);},this.Mt=function(){e.Ue&&e.Ue&&(e.g.F('Session.detachPlayer',function(){e.Ue.xn();}),e.Ue=null,e.wt.Wc(null),e.wt.Xe(I.PlayerState.NOT_MONITORED));},this.ql=function(){e.Ue&&(e.g.F('Session.releasePlayerStateManager',function(){e.Ue.xn();}),e.Ue=null,e.wt.Wc(null),e.wt.Xe(I.PlayerState.NOT_MONITORED));},this.Ut=function(){e.wt.Vc(!0),e.wt.Pn!==I.PlayerState.NOT_MONITORED&&(e.Ml=e.wt.Pn),e.wt.Xe(I.PlayerState.NOT_MONITORED),e.Ll=!0;},this.Vt=function(t){e.Ue||t instanceof I&&e.g.F('Session.attachPlayer()',function(){t.setMonitoringNotifier(e,e.C)&&(t.fi(),e.Ue=t,e.wt.Wc(e.Ue));});},this.kt=function(){e.wt.Vc(!1),e.Ul=!1,e.Vl=!1,e.Ql=!1,e.kl=!1,e.Fl=!1,e.bc=!1,e.Mc=!1,e.Dc=!1,e.gl=!1,e.Il=!1,e.Bl=!1,e.Cl=!1,e.wl=!1,e.Hl=!1,e.Xl||(e.Ll=!1,e.Ml!==I.PlayerState.NOT_MONITORED&&e.wt.Xe(e.Ml));},this.qt=function(){return e.Ue;},this.Ft=function(){e.Xl||(e.Xl=!0,e.Ll=!0);},this.Bt=function(){e.Xl&&(e.Xl=!1,e.Dl||(e.Ll=!1,e.Ml!==I.PlayerState.NOT_MONITORED&&e.wt.Xe(e.Ml)));},this.bt=function(t,n){!m.Pt(t)||n!==a.ErrorSeverity.FATAL&&n!==a.ErrorSeverity.WARNING||e.Fl||(n=n===a.ErrorSeverity.FATAL,e.wt.Fc(t,n));},this.Lt=function(t){e.g.F('Session.updateContentMetadata',function(){e.wt.Lt(t);});},this.Kt=function(t,n){e.wt.Xc(t,n);},this.ks=function(){return e.xf===C.Nt.Oh;},this.Cs=function(){return e.xf===C.Nt.Ot;},this.qf=function(){return e.xf===C.Nt.Dt;},this.Jf=function(){return e.ks()?' (global session)':'';},this.Xt=function(){return this.C;},this.Qt=function(){var t=null;return t=e.Kf.jl()?e.Kf.get(y.B):t;},this.Zt=function(t,n){e.wt.Zt(t,n);};}).Ol='received no response (or a bad response) to heartbeat POST request',tt=U.SessionFactory=function(){var o=this;o.Fi=null,o.Zl=0,o.zl=null,function(t,n,i,e){o.Ee=t,o.Vi=n,o.Kf=i,o.T=e,o.Zl=0,o.zl={};}.apply(o,arguments),this.Tt=function(){for(var t in o.Fi=null,o.zl)o.zl[t].cleanup();o.zl=null,o.Zl=0;},this.$l=function(){var t=o.Zl;return o.Zl++,t;},this.St=function(t,n,i,e,s){return t||(t=new c),o.td(t,n,i,e,s);},this.Y=function(t){return o.td(t,C.Nt.Oh,void 0,g.version);},this.nd=function(){return P.ed();},this.td=function(t,n,i,e,s){n=o.T.Zi(o.Ee,o.Vi,o.Kf,o.nd(),n,t.ct(),e),t=o.$l();return'undefined'!==typeof s&&'undefined'!==typeof s.error?n.Yf(i,s.error):(o.sd(t,n),n.Yf(i)),t;},this.jt=function(t){t=o.zl[t];return t;},this.It=function(t){t=this.jt(t);return t=!t||t.Cs()||t.qf()?t:null;},this.sd=function(t,n){o.zl[t]=n;},this.od=function(t){delete o.zl[t];},this.xt=function(t){var n=o.jt(t);o.od(t),n.cleanup();},this.tt=function(){return o.zl;};},nt=U.rd=function(t){this._e=t,this.ud=function(i,t,n){var e=!1;this._e.createOnce(function(){e||i(!(e=!0),n+' ('+t+' ms)');},t,'CallbackWithTimeout.wrap');return function(t,n){e||(e=!0,i(t,n));};};},(y=U.Config=function(t,n,i){var e=this;this.ad=n,this.fd=i,this.ld={clientId:N.H,iid:N.Sr,sendLogs:!1,maxHbInfos:N.Nr},this.I=m.ll(this.ld),this.dd=!1,this.vd=!1,this.Ed=[],this.jl=function(){return this.dd;},this.Et=function(){this.ad.Et(y.hd,function(t,n){t&&e._d(n),e.dd=!0,e.Rd();});},this._d=function(t){var n,t=this.fd.yh(t);t?t&&(n=t[y.pd],t=t[y._t],n&&n!==N.H&&''!==n&&'null'!==n&&(this.I[y.B]=n),t!==N.Sr)&&''!==t&&'null'!==t&&(this.I[y._t]=t):this.vd=!0;},this.Ad=function(){var t={};return t[y.pd]=this.I.clientId,this.fd.Ch(t);},this.Al=function(){this.ad.Al(y.hd,this.Ad(),function(t,n){});},this.Wl=function(t){this.jl()?t():this.Ed.push(t);},this.get=function(t){return this.dd?this.I[t]:null;},this.set=function(t,n){this.dd&&(this.I[t]=n);},this.Rd=function(){for(var t;'undefined'!==typeof(t=this.Ed.shift());)t();},this.getClientId=function(){return this.I.clientId;},this.getIid=function(){return this.I.iid;};}).hd='sdkConfig',y.pd='clId',y._t='iid',y.B='clientId',y.ol='sendLogs',y.nl='maxHbInfos',y.hl='c3.fp.',y.$t={al:'0',Td:'1',tn:'2',zt:'3',fl:'4',en:'5',nn:'6'},it=U.EventQueue=function(){this.Sd=[],this.Od=0,this.Kc=function(t){this.Sd.push(t);},this.Gc=function(){var t=this.Od;return this.Od++,t;},this.Wf=function(){var t=this.Sd;return this.Sd=[],t;};},et=U.ExceptionCatcher=function(t,n,i){this.Nd=n,this.N=i,this.F=function(n,t,i){try{t();}catch(t){if(i)i(t);else{if(this.N.allowUncaughtExceptions)throw t;this.gd(n,t);}}},this.gd=function(t,n){t='Uncaught exception: '+t+': '+n.toString();if(this.Nd)try{this.Nd.Rl(t);}catch(t){}};},st=U.GatewayControl=function(t,n,i,e,s){var o=this;this.Vi=t,this.Id=i,this.fd=e,this.wd=s,this.Rl=function(t,e){var n=(this.wd?this.wd.indexOf('ipv4')>-1?this.Vi.G:this.Vi.q:this.Vi.gatewayUrl)+N.Tr;this.Id.Cd('POST',n,this.fd.Ch(t),'application/json',function(t,n){var i;t?(i=o.fd.yh(n),e(t,i)):e(t,n);});};},m=U.Lang={yd:function(t){return m.Pt(t)&&t&&'undefined'!==t&&'null'!==t;},Gt:function(t){var n,i,e={};for(n in t)m.yd(n)&&(i=t[n],m.yd(i))&&(e[n]=i);return e;},Jn:function(t,n,i){if(!t)throw new Error('Expected '+i+' implementation is null.');for(var e in n)if('function'!==typeof t[e])throw new Error('Expected method '+e+' in '+i+' implementation.');},Ht:function(t){var n,i=0;for(n in t)Object.prototype.hasOwnProperty.call(t,n)&&i++;return i;},yt:function(t){return''+t;},md:function(t){return Math.floor(t);},cn:function(t){return Math.abs(m.md(t));},Dd:function(t){return Boolean(t);},Pt:function(t){return'string'===typeof t&&''!==t;},Sl:function(t,n){return'string'===typeof t&&'string'===typeof n&&'function'===typeof t.indexOf&&0===t.indexOf(n);},ie:function(t){return'boolean'===typeof t;},Pd:function(t){return escape(t);},mh:function(t){return'object'===typeof t;},Sc:function(t){var n,i='';for(n in t)i+=n+'='+t[n];return'Object{'+i+'}';},bd:function(t){var n,i=m.ll(t);for(n in i)i[n]||delete i[n];return i;},ll:function(t){var n,i={};for(n in t)i[n]=t[n];return i;},Tc:function(t,n){if(typeof t!==typeof n)return!1;if(t instanceof Object&&n instanceof Object){if(m.Ht(t)!==m.Ht(n))return!1;for(var i in t)if(!(t[i]===n[i]))return!1;return!0;}return t===n;},Vo:function(){for(var t={},n=0;nT.Vd?t=t%T.two32:t=T.kd;},S={Vd:2147483647,kd:-2147483648},m._l=S,m._l.Cast=function(t){t=parseInt(t,10);return t>S.Vd?t=t%S.Vd:t=S.kd;},m.tr=function(){return window&&window.location&&window.location.search?window.location.search:'';},m.Hd=function(){return document&&document.referrer?document.referrer:'';},ot=U.LogBuffer=function(){this.Gd=[],this.cr=function(t){this.Gd.length>=32&&this.Gd.shift(),this.Gd.push(t);},this.Wf=function(){var t=this.Gd;return this.Gd=[],t;};},(D=U.Ping=function(t,n,i,e){this.Kd=!1,this.Wd=null,this.p=t,this.p.setModuleName('Ping'),this.Id=n,this.Vi=i,this.ki=e,this.Rl=function(t){this.Kd||(this.Kd=!0,t=this.Yd()+'&d='+m.Pd(t.toString()),this.p.error('send(): '+t),this.Id.Cd('GET',t,null,null,null),this.Kd=!1);},this.Yd=function(){if(!this.Wd){var t=D.xd+'?comp='+D.jd+'&clv='+(this.ki||a.version);if(this.Vi&&(t+='&cid='+this.Vi.customerKey),t+='&sch='+N.Cr,!this.Vi)return t;this.Wd=t;}return this.Wd;};}).jd='sdkjs',D.xd='https://pings.conviva.com/ping.ping',P=U.qd={Jd:4294967295,Xd:2147483647,Qd:-2147483648,ed:function(){return Math.floor(Math.random()*P.Jd)+P.Qd;},Rt:function(){return Math.floor(Math.random()*P.Jd);}},b=U.Zd={jc:function(t,n,i,e){return isNaN(t)||'number'!==typeof t||t===e?e:(e=m.md(t),b.zd(e,n,i));},zd:function(t,n,i){return m.gt(i)&&t>i?t=i:m.gt(n)&&t {\n let includeIcon = true;\n //icon only in US\n if (OneTrust?.getGeolocationData()?.country !== 'US') {\n includeIcon = false;\n }\n takeoverButton('https://www.nbcuniversal.com/privacy/notrtoo', 'ot-sdk-show-settings', includeIcon);\n });\n }\n})();\n/* SNIPAF: END */\n",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"(function () {\n const TELE_TEXT = 'Nueva Pol\xedtica de Privacidad';\n const PRIVACY_TEXT_EN = 'New Privacy Policy';\n const COOKIE_OLD = 'https://www.nbcuniversal.com/privacy/cookies#cookie_management';\n const COOKIE_NEW = 'https://www.nbcuniversal.com/privacy/cookies#accordionheader2';\n const IS_TELE = /(^|\\.)telemundo\\.com$/i.test(location.hostname);\n\n function ensureFooter() {\n const root = document.querySelector('footer') || document.body || document.documentElement;\n\n // Cookies link href\n const cookieLink = root.querySelector(`a[href=\"${COOKIE_OLD}\"]`);\n if (cookieLink && cookieLink.getAttribute('href') !== COOKIE_NEW) {\n cookieLink.setAttribute('href', COOKIE_NEW);\n }\n\n // Privacy link text (NBC News intake; exclude cookies)\n if (!IS_TELE) {\n const privacyLink = Array.from(\n root.querySelectorAll(\n 'a[href^=\"https://www.nbcuniversal.com/privacy?intake=NBC_News\"], a[href^=\"https://www.nbcuniversalprivacy.com/privacy?intake=NBC_News\"]',\n ),\n ).find(a => !a.href.includes('cookies'));\n if (privacyLink && privacyLink.textContent.trim() !== PRIVACY_TEXT_EN) {\n privacyLink.textContent = PRIVACY_TEXT_EN;\n }\n }\n\n // Telemundo privacy text\n if (IS_TELE) {\n const tele = root.querySelector(\n 'a[href*=\"privacy-latinamerica\"], a[href*=\"privacy-policies/privacy-latinamerica\"]',\n );\n if (tele && tele.textContent.trim() !== TELE_TEXT) {\n tele.textContent = TELE_TEXT;\n }\n // For Tele, consider \"done\" only if the link exists and is correct\n return !!tele && tele.textContent.trim() === TELE_TEXT;\n }\n\n return true; // non-Tele pages are \"done\" once updated\n }\n\n // Small, bounded rAF loop to beat hydration swaps without observers\n function runWithTinyRetries() {\n let attempts = 0, stableFrames = 0;\n const MAX_ATTEMPTS = 12; // ~200ms worst case\n const NEED_STABLE = 2; // two consecutive frames stable\n\n (function tick() {\n attempts++;\n const ok = ensureFooter();\n stableFrames = ok ? (stableFrames + 1) : 0;\n if (stableFrames >= NEED_STABLE || attempts >= MAX_ATTEMPTS) return;\n (window.requestAnimationFrame || setTimeout)(tick, 16);\n })();\n }\n\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', runWithTinyRetries, { once: true });\n }\n else {\n runWithTinyRetries();\n }\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLf69940684cf04ec081e7eb8908d627ea",name:"DR - Adobe Activity Map [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RC20a98d1b07d24e9fa2b68152449ec3fa-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/a2ef59fba8e9/0c702136bee3/814bf77118d1/RCd3c1a5e3ebff4906a7d6272ea48b94cd-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RLf948b47e4d8d44bfbfe39127c924e815",name:"30 - Adobe Appmeasurement [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:30}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,
source:'/* eslint-disable */\n/*\nCopyright (c) Copyright (c) 2007, Carl S. Yestrau All rights reserved.\nCode licensed under the BSD License: http://www.featureblend.com/license.txt\nVersion: 1.0.4\n*/\n\n/*\n Start ActivityMap Module\n\n The following module enables ActivityMap tracking in Adobe Analytics. ActivityMap\n allows you to view data overlays on your links and content to understand how\n users engage with your web site. If you do not intend to use ActivityMap, you\n can remove the following block of code from your AppMeasurement.js file.\n Additional documentation on how to configure ActivityMap is available at:\n https://marketing.adobe.com/resources/help/en_US/analytics/activitymap/getting-started-admins.html\n*/\nfunction AppMeasurement_Module_ActivityMap(h){function q(){var a=f.pageYOffset+(f.innerHeight||0);a&&a>+g&&(g=a)}function r(){if(e.scrollReachSelector){var a=h.d.querySelector&&h.d.querySelector(e.scrollReachSelector);a?(g=a.scrollTop||0,a.addEventListener("scroll",function(){var d;(d=a&&a.scrollTop+a.clientHeight||0)>g&&(g=d)})):0 \'}");if(!((n=e.getInstance(t,{idSyncContainerID:r}))===Object(n)&&n instanceof e&&"function"==typeof n.isAllowed&&"function"==typeof n.getMarketingCloudVisitorID&&"function"==typeof n.getCustomerIDs&&"function"==typeof n.isOptedOut&&"function"==typeof n.publishDestinations))throw this.releaseType="invalid instance",s="Invalid Visitor instance.",n===Object(n)&&"function"!=typeof n.publishDestinations&&(s+=" In particular, visitorInstance.publishDestinations is not a function. This is needed to fire URL destinations in DIL v8.0+ and should be present in Visitor v3.3.0+ ."),new Error(s);if(this.VisitorAPI=e,!n.isAllowed())return this.releaseType="VisitorAPI is not allowed to write cookies",void this.releaseRequests();this.instance=n,this.waitForMidToReleaseRequests()}catch(e){if(!D)throw new Error("Error in processing Visitor API, which is a hard dependency for DIL v8.0+: "+e.message);this.releaseRequests()}},waitForMidToReleaseRequests:function(){var t=this;this.instance&&(this.instance.getMarketingCloudVisitorID(function(e){t.mid=e,t.releaseType="VisitorAPI",t.releaseRequests()},!0),(!N.exists||!N.isIabContext&&N.isApproved()||N.isIabContext&&B.hasGoSignal())&&setTimeout(function(){"VisitorAPI"!==t.releaseType&&(t.releaseType="timeout",t.releaseRequests())},this.getLoadTimeout()))},releaseRequests:function(){this.calledBack=!0,A.registerRequest()},getMarketingCloudVisitorID:function(){return this.instance?this.instance.getMarketingCloudVisitorID():null},getMIDQueryString:function(){var e=k.isPopulatedString,t=this.getMarketingCloudVisitorID();return e(this.mid)&&this.mid===t||(this.mid=t),e(this.mid)?"d_mid="+this.mid+"&":""},getCustomerIDs:function(){return this.instance?this.instance.getCustomerIDs():null},getCustomerIDsQueryString:function(e){if(e!==Object(e))return"";var t,n,s,i,r="",o=[],a=[];for(t in e)e.hasOwnProperty(t)&&(n=e[a[0]=t])===Object(n)&&(a[1]=n.id||"",a[2]=n.authState||0,o.push(a),a=[]);if(i=o.length)for(s=0;s 1"):void 0},getPublishDestinationsVersion:function(){if(null!==this.publishDestinationsVersion)return this.publishDestinationsVersion;var e=A.adms.instance,n=-1;return e.publishDestinations(null,null,function(e){if(e===Object(e)){var t=e.error;"subdomain is not a populated string."===t?n=1:"Invalid parameters passed."===t&&(n=2)}}),this.publishDestinationsVersion=n}},M={traits:function(e){return k.isValidPdata(e)&&(L.sids instanceof Array||(L.sids=[]),x.extendArray(L.sids,e)),this},pixels:function(e){return k.isValidPdata(e)&&(L.pdata instanceof Array||(L.pdata=[]),x.extendArray(L.pdata,e)),this},logs:function(e){return k.isValidLogdata(e)&&(L.logdata!==Object(L.logdata)&&(L.logdata={}),x.extendObject(L.logdata,e)),this},customQueryParams:function(e){return k.isEmptyObject(e)||x.extendObject(L,e,A.reservedKeys),this},signals:function(e,t){var n,s=e;if(!k.isEmptyObject(s)){if(t&&"string"==typeof t)for(n in s={},e)e.hasOwnProperty(n)&&(s[t+n]=e[n]);x.extendObject(L,s,A.reservedKeys)}return this},declaredId:function(e){return A.declaredId.setDeclaredId(e,"request"),this},result:function(e){return"function"==typeof e&&(L.callback=e),this},afterResult:function(e){return"function"==typeof e&&(L.postCallbackFn=e),this},useImageRequest:function(){return L.useImageRequest=!0,this},clearData:function(){return L={},this},submit:function(e){return L.isDefaultRequest=!!e,V.submitRequest(L),L={},this},getPartner:function(){return I},getContainerNSID:function(){return r},getEventLog:function(){return O},getState:function(){var e={},t={};return x.extendObject(e,A,{registerRequest:!0}),x.extendObject(t,T,{requestToProcess:!0,process:!0,sendMessages:!0}),{initConfig:n,pendingRequest:L,otherRequestInfo:e,destinationPublishingInfo:t,log:O}},idSync:function(){throw new Error("Please use the `idSyncByURL` method of the Experience Cloud ID Service (Visitor) instance")},aamIdSync:function(){throw new Error("Please use the `idSyncByDataSource` method of the Experience Cloud ID Service (Visitor) instance")},passData:function(e){return k.isEmptyObject(e)?"Error: json is empty or not an object":(V.defaultCallback(e),e)},getPlatformParams:function(){return A.platformParams},getEventCallConfigParams:function(){var e,t=A,n=t.modStatsParams,s=t.platformParams;if(!n){for(e in n={},s)s.hasOwnProperty(e)&&!t.nonModStatsParams[e]&&(n[e.replace(/^d_/,"")]=s[e]);!0===d?n.coop_safe=1:!1===d&&(n.coop_unsafe=1),t.modStatsParams=n}return n},setAsCoopSafe:function(){return d=!0,this},setAsCoopUnsafe:function(){return d=!1,this},getEventCallIabSignals:function(e){var t;return e!==Object(e)?"Error: config is not an object":"function"!=typeof e.callback?"Error: config.callback is not a function":(t=parseInt(e.timeout,10),isNaN(t)&&(t=null),void B.getQueryStringObject(e.callback,t))}},V={corsMetadata:(q="none","undefined"!=typeof XMLHttpRequest&&XMLHttpRequest===Object(XMLHttpRequest)&&"withCredentials"in new XMLHttpRequest&&(q="XMLHttpRequest"),{corsType:q}),getCORSInstance:function(){return"none"===this.corsMetadata.corsType?null:new window[this.corsMetadata.corsType]},submitRequest:function(e){return A.registerRequest(V.createQueuedRequest(e)),!0},createQueuedRequest:function(e){var t,n,s,i,r,o=e.callback,a="img",d=e.isDefaultRequest;if(delete e.isDefaultRequest,!k.isEmptyObject(u))for(s in u)if(u.hasOwnProperty(s)){if(null==(i=u[s])||""===i)continue;if(s in e&&!(i in e)&&!(i in A.reservedKeys)){if(null==(r=e[s])||""===r)continue;e[i]=r}}return k.isValidPdata(e.sids)||(e.sids=[]),k.isValidPdata(e.pdata)||(e.pdata=[]),k.isValidLogdata(e.logdata)||(e.logdata={}),e.logdataArray=x.convertObjectToKeyValuePairs(e.logdata,"=",!0),e.logdataArray.push("_ts="+(new Date).getTime()),"function"!=typeof o&&(o=this.defaultCallback),t=this.makeRequestSrcData(e),(n=this.getCORSInstance())&&!0!==e.useImageRequest&&(a="cors"),{tag:a,src:t.src,corsSrc:t.corsSrc,callbackFn:o,postCallbackFn:e.postCallbackFn,useImageRequest:!!e.useImageRequest,requestData:e,corsInstance:n,corsPostData:t.corsPostData,isDefaultRequest:d}},defaultCallback:function(e,t){var n,s,i,r,o,a,d,u,c;if(g&&(n=e.stuff)&&n instanceof Array&&(s=n.length))for(i=0;ia.indexOf(b)?a:a.split(b).join(d)};a.escape=function(c){var b,d;if(!c)return c;c=encodeURIComponent(c);for(b=0;7>b;b++)d="+~!*()\'".substring(b,b+1),0<=c.indexOf(d)&&(c=a.replace(c,d,"%"+d.charCodeAt(0).toString(16).toUpperCase()));return c};a.unescape=function(c){if(!c)return c;c=0<=c.indexOf("+")?a.replace(c,"+"," "):c;try{return decodeURIComponent(c)}catch(b){}return unescape(c)};a.Kb=function(){var c=h.location.hostname,b=a.fpCookieDomainPeriods,d;b||(b=a.cookieDomainPeriods);if(c&&!a.Ia&&!/^[0-9.]+$/.test(c)&&\n(b=b?parseInt(b):2,b=2d?d:b.indexOf(";",d);c=0>d?"":a.unescape(b.substring(d+2+c.length,0>f?b.length:f));return"[[B]]"!=c?c:""};a.c_w=a.cookieWrite=function(c,b,d){var f=a.Kb(),e=a.cookieLifetime,g;b=""+b;e=e?(""+e).toUpperCase():"";d&&"SESSION"!=e&&"NONE"!=e&&((g=""!=b?parseInt(e?e:0):-60)?\n(d=new Date,d.setTime(d.getTime()+1E3*g)):1===d&&(d=new Date,g=d.getYear(),d.setYear(g+2+(1900>g?1900:0))));return c&&"NONE"!=e?(a.d.cookie=a.escape(c)+"="+a.escape(""!=b?b:"[[B]]")+"; path=/;"+(d&&"SESSION"!=e?" expires="+d.toUTCString()+";":"")+(f?" domain="+f+";":""),a.cookieRead(c)==b):0};a.Hb=function(){var c=a.Util.getIeVersion();"number"===typeof c&&10>c&&(a.unsupportedBrowser=!0,a.ub(a,function(){}))};a.ub=function(a,b){for(var d in a)a.hasOwnProperty(d)&&"function"===typeof a[d]&&(a[d]=b)};\na.K=[];a.ea=function(c,b,d){if(a.Ja)return 0;a.maxDelay||(a.maxDelay=250);var f=0,e=(new Date).getTime()+a.maxDelay,g=a.d.visibilityState,k=["webkitvisibilitychange","visibilitychange"];g||(g=a.d.webkitVisibilityState);if(g&&"prerender"==g){if(!a.fa)for(a.fa=1,d=0;dc){a.K.unshift(d);setTimeout(a.delayReady,parseInt(a.maxDelay/2));break}a.Ja=1;a[d.m].apply(a,d.a);a.Ja=0}};a.setAccount=a.sa=function(c){var b,d;if(!a.ea("setAccount",arguments))if(a.account=c,a.allAccounts)for(b=a.allAccounts.concat(c.split(",")),a.allAccounts=[],b.sort(),d=0;de.indexOf(".contextData."))switch(h=k.substring(0,4),n=k.substring(4),k){case "transactionID":k="xact";break;case "channel":k="ch";break;case "campaign":k="v0";break;default:a.Pa(n)&&("prop"==h?k="c"+n:"eVar"==h?k="v"+n:"list"==h?k="l"+n:"hier"==h&&(k="h"+n,l=l.substring(0,255)))}g+="&"+a.escape(k)+"="+a.escape(l)}}""!=g&&(g+="&."+c)}return g};a.usePostbacks=0;a.Nb=function(){var c="",b,d,f,e,g,k,l,h,n="",m="",p=e="",r=a.T();if(a.lightProfileID)b=a.O,(n=a.lightTrackVars)&&(n=","+n+","+a.ka.join(",")+\n",");else{b=a.g;if(a.pe||a.linkType)n=a.linkTrackVars,m=a.linkTrackEvents,a.pe&&(e=a.pe.substring(0,1).toUpperCase()+a.pe.substring(1),a[e]&&(n=a[e].ac,m=a[e].$b));n&&(n=","+n+","+a.F.join(",")+",");m&&(m=","+m+",",n&&(n+=",events,"));a.events2&&(p+=(""!=p?",":"")+a.events2)}if(r&&r.getCustomerIDs){e=q;if(g=r.getCustomerIDs())for(d in g)Object.prototype[d]||(f=g[d],"object"==typeof f&&(e||(e={}),f.id&&(e[d+".id"]=f.id),f.authState&&(e[d+".as"]=f.authState)));e&&(c+=a.o("cid",e))}a.AudienceManagement&&\na.AudienceManagement.isReady()&&(c+=a.o("d",a.AudienceManagement.getEventCallConfigParams()));for(d=0;df||0<=e&&f>e||0<=g&&f>g)&&(e=a.protocol&&1f?0:f)+"/":"")+d);return d};a.L=function(c){var b=a.B(c),d,f,e="",g=0;return b&&(d=c.protocol,f=c.onclick,!c.href||"A"!=b&&"AREA"!=b||f&&d&&!(0>d.toLowerCase().indexOf("javascript"))?f?(e=a.replace(a.replace(a.replace(a.replace(""+\nf,"\\r",""),"\\n",""),"\\t","")," ",""),g=2):"INPUT"==b||"SUBMIT"==b?(c.value?e=c.value:c.innerText?e=c.innerText:c.textContent&&(e=c.textContent),g=3):"IMAGE"==b&&c.src&&(e=c.src):e=a.La(c),e)?{id:e.substring(0,100),type:g}:0};a.fc=function(c){for(var b=a.B(c),d=a.L(c);c&&!d&&"BODY"!=b;)if(c=c.parentElement?c.parentElement:c.parentNode)b=a.B(c),d=a.L(c);d&&"BODY"!=b||(c=0);c&&(b=c.onclick?""+c.onclick:"",0<=b.indexOf(".tl(")||0<=b.indexOf(".trackLink("))&&(c=0);return c};a.Vb=function(){var c,b,d=a.linkObject,\nf=a.linkType,e=a.linkURL,g,k;a.la=1;d||(a.la=0,d=a.clickObject);if(d){c=a.B(d);for(b=a.L(d);d&&!b&&"BODY"!=c;)if(d=d.parentElement?d.parentElement:d.parentNode)c=a.B(d),b=a.L(d);b&&"BODY"!=c||(d=0);if(d&&!a.linkObject){var l=d.onclick?""+d.onclick:"";if(0<=l.indexOf(".tl(")||0<=l.indexOf(".trackLink("))d=0}}else a.la=1;!e&&d&&(e=a.La(d));e&&!a.linkLeaveQueryString&&(g=e.indexOf("?"),0<=g&&(e=e.substring(0,g)));if(!f&&e){var m=0,n=0,p;if(a.trackDownloadLinks&&a.linkDownloadFileTypes)for(l=e.toLowerCase(),\ng=l.indexOf("?"),k=l.indexOf("#"),0<=g?0<=k&&kb)return 0}return 1};a.S=function(c,b){var d,f,e,g,k,h,m;m={};for(d=0;2>d;d++)for(f=0b;b++)for(d=0c.indexOf("-")){for(c=0;16>c;c++)f=Math.floor(Math.random()*f),b+="0123456789ABCDEF".substring(f,f+1),f=Math.floor(Math.random()*e),d+="0123456789ABCDEF".substring(f,f+1),f=e=16;c=b+"-"+d}a.cookieWrite("s_fid",c,1)||(c=0);return c};a.Da=function(c){var b=new Date,\nd="s"+Math.floor(b.getTime()/108E5)%10+Math.floor(1E13*Math.random()),f=b.getYear(),f="t="+a.escape(b.getDate()+"/"+b.getMonth()+"/"+(1900>f?f+1900:f)+" "+b.getHours()+":"+b.getMinutes()+":"+b.getSeconds()+" "+b.getDay()+" "+b.getTimezoneOffset()),e=a.T(),g;c&&(g=a.S(c,1));a.Sb()&&!a.visitorOptedOut&&(a.wa()||(a.fid=a.Lb()),a.Vb(),a.usePlugins&&a.doPlugins&&a.doPlugins(a),a.account&&(a.abort||(a.trackOffline&&!a.timestamp&&(a.timestamp=Math.floor(b.getTime()/1E3)),c=h.location,a.pageURL||(a.pageURL=\nc.href?c.href:c),a.referrer||a.Za||(c=a.Util.getQueryParam("adobe_mc_ref",null,null,!0),a.referrer=c||void 0===c?void 0===c?"":c:p.document.referrer),a.Za=1,a.referrer=a.Jb(a.referrer),a.u("_g")),a.Ob()&&!a.abort&&(e&&a.V("TARGET")&&!a.supplementalDataID&&e.getSupplementalDataID&&(a.supplementalDataID=e.getSupplementalDataID("AppMeasurement:"+a._in,a.expectSupplementalData?!1:!0)),a.V("AAM")||(a.contextData["cm.ssf"]=1),a.Pb(),f+=a.Nb(),a.qb(d,f),a.u("_t"),a.referrer="")));a.Ba();g&&a.S(g,1)};a.t=\na.track=function(c,b){b&&a.S(b);a.Y=!0;a.isReadyToTrack()?null!=a.j&&0a.N&&a.Ua(a.i),a.qa(500);else{var c=a.Cb();if(0=a.offlineThrottleDelay)return 0;c=a.A()-a.Sa;return a.offlineThrottleDelaya.N&&a.Ua(a.i);a.ca();a.qa(500)};b.onreadystatechange=function(){4==b.readyState&&(200==\nb.status?b.R():b.ga())};a.Sa=a.A();if(1===d)b.send(c);else if(2===d)f=c.indexOf("?"),d=c.substring(0,f),f=c.substring(f+1),f=f.replace(/&callback=[a-zA-Z0-9_.\\[\\]]+/,""),b.open("POST",d,!0),b.withCredentials=!0,b.send(f);else if(b.src=c,3===d){if(a.Qa)try{f.removeChild(a.Qa)}catch(e){}f.firstChild?f.insertBefore(b,f.firstChild):f.appendChild(b);a.Qa=a.v}b.D=setTimeout(function(){b.D&&(b.complete?b.R():(a.trackOffline&&b.abort&&b.abort(),b.ga()))},5E3);a.Fb=c;a.v=h["s_i_"+a.replace(a.account,",","_")]=\nb;if(a.useForcedLinkTracking&&a.J||a.bodyClickFunction)a.forcedLinkTrackingTimeout||(a.forcedLinkTrackingTimeout=250),a.da=setTimeout(a.ca,a.forcedLinkTrackingTimeout)};a.lb=function(c){var b=!1;navigator.sendBeacon&&(a.nb(c)?b=!0:a.useBeacon&&(b=!0));a.vb(c)&&(b=!1);return b};a.nb=function(a){return a&&0a.N))try{h.localStorage.removeItem(a.ma()),a.Ra=a.A()}catch(c){}};a.Ua=function(c){if(a.oa()){a.Wa();try{h.localStorage.setItem(a.ma(),h.JSON.stringify(c)),a.N=a.A()}catch(b){}}};a.Wa=function(){if(a.trackOffline){if(!a.offlineLimit||0>=a.offlineLimit)a.offlineLimit=10;for(;a.i.length>a.offlineLimit;)a.Ka()}};a.forceOffline=function(){a.na=!0};a.forceOnline=function(){a.na=!1};a.ma=function(){return a.offlineFilename+"-"+a.visitorNamespace+a.account};a.A=function(){return(new Date).getTime()};\na.Oa=function(a){a=a.toLowerCase();return 0!=a.indexOf("#")&&0!=a.indexOf("about:")&&0!=a.indexOf("opera:")&&0!=a.indexOf("javascript:")?!0:!1};a.setTagContainer=function(c){var b,d,f;a.Yb=c;for(b=0;b(""+f[b]).indexOf("s_c_il"))&&(c[b]=f[b]);if(d.mmq)for(b=\n0;be)return g;b=d+b.substring(e+1)+d;if(!f||!(0<=b.indexOf(d+c+d)||0<=b.indexOf(d+\nc+"="+d))){e=b.indexOf("#");0<=e&&(b=b.substr(0,e)+d);e=b.indexOf(d+c+"=");if(0>e)return g;b=b.substring(e+d.length+c.length+1);e=b.indexOf(d);0<=e&&(b=b.substring(0,e));0 =m;m++)76>m&&(a.g.push("prop"+m),a.O.push("prop"+m)),a.g.push("eVar"+m),a.O.push("eVar"+m),6>m&&a.g.push("hier"+m),4>m&&a.g.push("list"+m);m="pe pev1 pev2 pev3 latitude longitude resolution colorDepth javascriptVersion javaEnabled cookiesEnabled browserWidth browserHeight connectionType homepage pageURLRest marketingCloudOrgID ms_a".split(" ");a.g=a.g.concat(m);a.F=a.F.concat(m);a.ssl=0<=h.location.protocol.toLowerCase().indexOf("https");a.charSet="UTF-8";a.contextData={};a.offlineThrottleDelay=\n0;a.offlineFilename="AppMeasurement.offline";a.P="s_sq";a.Sa=0;a.ia=0;a.N=0;a.Ra=0;a.linkDownloadFileTypes="exe,zip,wav,mp3,mov,mpg,avi,wmv,pdf,doc,docx,xls,xlsx,ppt,pptx";a.w=h;a.d=h.document;try{if(a.Xa=!1,navigator){var v=navigator.userAgent;if("Microsoft Internet Explorer"==navigator.appName||0<=v.indexOf("MSIE ")||0<=v.indexOf("Trident/")&&0<=v.indexOf("Windows NT 6"))a.Xa=!0}}catch(x){}a.ca=function(){a.da&&(h.clearTimeout(a.da),a.da=q);a.bodyClickTarget&&a.J&&a.bodyClickTarget.dispatchEvent(a.J);\na.bodyClickFunction&&("function"==typeof a.bodyClickFunction?a.bodyClickFunction():a.bodyClickTarget&&a.bodyClickTarget.href&&(a.d.location=a.bodyClickTarget.href));a.bodyClickTarget=a.J=a.bodyClickFunction=0};a.Va=function(){a.b=a.d.body;a.b?(a.r=function(c){var b,d,f,e,g;if(!(a.d&&a.d.getElementById("cppXYctnr")||c&&c["s_fe_"+a._in])){if(a.Ga)if(a.useForcedLinkTracking)a.b.removeEventListener("click",a.r,!1);else{a.b.removeEventListener("click",a.r,!0);a.Ga=a.useForcedLinkTracking=0;return}else a.useForcedLinkTracking=\n0;a.clickObject=c.srcElement?c.srcElement:c.target;try{if(!a.clickObject||a.M&&a.M==a.clickObject||!(a.clickObject.tagName||a.clickObject.parentElement||a.clickObject.parentNode))a.clickObject=0;else{var k=a.M=a.clickObject;a.ha&&(clearTimeout(a.ha),a.ha=0);a.ha=setTimeout(function(){a.M==k&&(a.M=0)},1E4);f=a.Ma();a.track();if(fr)return 1;if(r>i)return-1}return 0}function s(e,t){if(e===t)return 0;var n=e.toString().split("."),i=t.toString().split(".");return r(n.concat(i))?(a(n,i),o(n,i)):NaN}function l(e){return e===Object(e)&&0===Object.keys(e).length}function c(e){return"function"==typeof e||e instanceof Array&&e.length}function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return!0};this.log=_e("log",e,t),this.warn=_e("warn",e,t),this.error=_e("error",e,t)}function d(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.isEnabled,n=e.cookieName,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=i.cookies;return t&&n&&r?{remove:function(){r.remove(n)},get:function(){var e=r.get(n),t={};try{t=JSON.parse(e)}catch(e){t={}}return t},set:function(e,t){t=t||{},r.set(n,JSON.stringify(e),{domain:t.optInCookieDomain||"",cookieLifetime:t.optInStorageExpiry||3419e4,expires:!0})}}:{get:Le,set:Le,remove:Le}}function f(e){this.name=this.constructor.name,this.message=e,"function"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error(e).stack}function p(){function e(e,t){var n=Se(e);return n.length?n.every(function(e){return!!t[e]}):De(t)}function t(){M(b),O(ce.COMPLETE),_(h.status,h.permissions),m.set(h.permissions,{optInCookieDomain:l,optInStorageExpiry:c}),C.execute(xe)}function n(e){return function(n,i){if(!Ae(n))throw new Error("[OptIn] Invalid category(-ies). Please use the `OptIn.Categories` enum.");return O(ce.CHANGED),Object.assign(b,ye(Se(n),e)),i||t(),h}}var i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=i.doesOptInApply,a=i.previousPermissions,o=i.preOptInApprovals,s=i.isOptInStorageEnabled,l=i.optInCookieDomain,c=i.optInStorageExpiry,u=i.isIabContext,f=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},p=f.cookies,g=Pe(a);Re(g,"Invalid `previousPermissions`!"),Re(o,"Invalid `preOptInApprovals`!");var m=d({isEnabled:!!s,cookieName:"adobeujs-optin"},{cookies:p}),h=this,_=le(h),C=ge(),I=Me(g),v=Me(o),S=m.get(),D={},A=function(e,t){return ke(e)||t&&ke(t)?ce.COMPLETE:ce.PENDING}(I,S),y=function(e,t,n){var i=ye(pe,!r);return r?Object.assign({},i,e,t,n):i}(v,I,S),b=be(y),O=function(e){return A=e},M=function(e){return y=e};h.deny=n(!1),h.approve=n(!0),h.denyAll=h.deny.bind(h,pe),h.approveAll=h.approve.bind(h,pe),h.isApproved=function(t){return e(t,h.permissions)},h.isPreApproved=function(t){return e(t,v)},h.fetchPermissions=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t?h.on(ce.COMPLETE,e):Le;return!r||r&&h.isComplete||!!o?e(h.permissions):t||C.add(xe,function(){return e(h.permissions)}),n},h.complete=function(){h.status===ce.CHANGED&&t()},h.registerPlugin=function(e){if(!e||!e.name||"function"!=typeof e.onRegister)throw new Error(je);D[e.name]||(D[e.name]=e,e.onRegister.call(e,h))},h.execute=Ne(D),Object.defineProperties(h,{permissions:{get:function(){return y}},status:{get:function(){return A}},Categories:{get:function(){return ue}},doesOptInApply:{get:function(){return!!r}},isPending:{get:function(){return h.status===ce.PENDING}},isComplete:{get:function(){return h.status===ce.COMPLETE}},__plugins:{get:function(){return Object.keys(D)}},isIabContext:{get:function(){return u}}})}function g(e,t){function n(){r=null,e.call(e,new f("The call took longer than you wanted!"))}function i(){r&&(clearTimeout(r),e.apply(e,arguments))}if(void 0===t)return e;var r=setTimeout(n,t);return i}function m(){if(window.__cmp)return window.__cmp;var e=window;if(e===window.top)return void Ie.error("__cmp not found");for(var t;!t;){e=e.parent;try{e.frames.__cmpLocator&&(t=e)}catch(e){}if(e===window.top)break}if(!t)return void Ie.error("__cmp not found");var n={};return window.__cmp=function(e,i,r){var a=Math.random()+"",o={__cmpCall:{command:e,parameter:i,callId:a}};n[a]=r,t.postMessage(o,"*")},window.addEventListener("message",function(e){var t=e.data;if("string"==typeof t)try{t=JSON.parse(e.data)}catch(e){}if(t.__cmpReturn){var i=t.__cmpReturn;n[i.callId]&&(n[i.callId](i.returnValue,i.success),delete n[i.callId])}},!1),window.__cmp}function h(){var e=this;e.name="iabPlugin",e.version="0.0.1";var t=ge(),n={allConsentData:null},i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return n[e]=t};e.fetchConsentData=function(e){var t=e.callback,n=e.timeout,i=g(t,n);r({callback:i})},e.isApproved=function(e){var t=e.callback,i=e.category,a=e.timeout;if(n.allConsentData)return t(null,s(i,n.allConsentData.vendorConsents,n.allConsentData.purposeConsents));var o=g(function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.vendorConsents,a=n.purposeConsents;t(e,s(i,r,a))},a);r({category:i,callback:o})},e.onRegister=function(t){var n=Object.keys(de),i=function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=i.purposeConsents,a=i.gdprApplies,o=i.vendorConsents;!e&&a&&o&&r&&(n.forEach(function(e){var n=s(e,o,r);t[n?"approve":"deny"](e,!0)}),t.complete())};e.fetchConsentData({callback:i})};var r=function(e){var r=e.callback;if(n.allConsentData)return r(null,n.allConsentData);t.add("FETCH_CONSENT_DATA",r);var s={};o(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.purposeConsents,o=e.gdprApplies,l=e.vendorConsents;(arguments.length>1?arguments[1]:void 0)&&(s={purposeConsents:r,gdprApplies:o,vendorConsents:l},i("allConsentData",s)),a(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(arguments.length>1?arguments[1]:void 0)&&(s.consentString=e.consentData,i("allConsentData",s)),t.execute("FETCH_CONSENT_DATA",[null,n.allConsentData])})})},a=function(e){var t=m();t&&t("getConsentData",null,e)},o=function(e){var t=Fe(de),n=m();n&&n("getVendorConsents",t,e)},s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=!!t[de[e]];return i&&function(){return fe[e].every(function(e){return n[e]})}()}}var _="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};Object.assign=Object.assign||function(e){for(var t,n,i=1;i4;e--){var t=document.createElement("div");if(t.innerHTML="\\x3c!--[if IE "+e+"]> =0;n--)if(t=i.slice(n).join("."),Q.set("test","cookie",{domain:t}))return Q.remove("test",{domain:t}),t;return""},Z={compare:s,isLessThan:function(e,t){return s(e,t)<0},areVersionsDifferent:function(e,t){return 0!==s(e,t)},isGreaterThan:function(e,t){return s(e,t)>0},isEqual:function(e,t){return 0===s(e,t)}},ee=!!_.postMessage,te={postMessage:function(e,t,n){var i=1;t&&(ee?n.postMessage(e,t.replace(/([^:]+:\\/\\/[^\\/]+).*/,"$1")):t&&(n.location=t.replace(/#.*$/,"")+"#"+ +new Date+i+++"&"+e))},receiveMessage:function(e,t){var n;try{ee&&(e&&(n=function(n){if("string"==typeof t&&n.origin!==t||"[object Function]"===Object.prototype.toString.call(t)&&!1===t(n.origin))return!1;e(n)}),_.addEventListener?_[e?"addEventListener":"removeEventListener"]("message",n):_[e?"attachEvent":"detachEvent"]("onmessage",n))}catch(e){}}},ne=function(e){var t,n,i="0123456789",r="",a="",o=8,s=10,l=10;if(1==e){for(i+="ABCDEF",t=0;16>t;t++)n=Math.floor(Math.random()*o),r+=i.substring(n,n+1),n=Math.floor(Math.random()*o),a+=i.substring(n,n+1),o=16;return r+"-"+a}for(t=0;19>t;t++)n=Math.floor(Math.random()*s),r+=i.substring(n,n+1),0===t&&9==n?s=3:(1==t||2==t)&&10!=s&&2>n?s=10:2n?l=10:20&&(t=!1)),{corsType:e,corsCookiesEnabled:t}}(),getCORSInstance:function(){return"none"===this.corsMetadata.corsType?null:new _[this.corsMetadata.corsType]},fireCORS:function(t,n,i){function r(e){var n;try{if((n=JSON.parse(e))!==Object(n))return void a.handleCORSError(t,null,"Response is not JSON")}catch(e){return void a.handleCORSError(t,e,"Error parsing response as JSON")}try{for(var i=t.callback,r=_,o=0;o=a&&(e.splice(r,1),r--);return{dataPresent:o,dataValid:s}},manageSyncsSize:function(e){if(e.join("*").length>this.MAX_SYNCS_LENGTH)for(e.sort(function(e,t){return parseInt(e.split("-")[1],10)-parseInt(t.split("-")[1],10)});e.join("*").length>this.MAX_SYNCS_LENGTH;)e.shift()},fireSync:function(t,n,i,r,a,o){var s=this;if(t){if("img"===n.tag){var l,c,u,d,f=n.url,p=e.loadSSL?"https:":"http:";for(l=0,c=f.length;lre.DAYS_BETWEEN_SYNC_ID_CALLS},attachIframeASAP:function(){function e(){t.startedAttachingIframe||(n.body?t.attachIframe():setTimeout(e,30))}var t=this;e()}}},oe={audienceManagerServer:{},audienceManagerServerSecure:{},cookieDomain:{},cookieLifetime:{},cookieName:{},doesOptInApply:{},disableThirdPartyCalls:{},discardTrackingServerECID:{},idSyncAfterIDCallResult:{},idSyncAttachIframeOnWindowLoad:{},idSyncContainerID:{},idSyncDisable3rdPartySyncing:{},disableThirdPartyCookies:{},idSyncDisableSyncs:{},disableIdSyncs:{},idSyncIDCallResult:{},idSyncSSLUseAkamai:{},isCoopSafe:{},isIabContext:{},isOptInStorageEnabled:{},loadSSL:{},loadTimeout:{},marketingCloudServer:{},marketingCloudServerSecure:{},optInCookieDomain:{},optInStorageExpiry:{},overwriteCrossDomainMCIDAndAID:{},preOptInApprovals:{},previousPermissions:{},resetBeforeVersion:{},sdidParamExpiry:{},serverState:{},sessionCookieName:{},secureCookie:{},takeTimeoutMetrics:{},trackingServer:{},trackingServerSecure:{},whitelistIframeDomains:{},whitelistParentDomain:{}},se={getConfigNames:function(){return Object.keys(oe)},getConfigs:function(){return oe},normalizeConfig:function(e){return"function"!=typeof e?e:e()}},le=function(e){var t={};return e.on=function(e,n,i){if(!n||"function"!=typeof n)throw new Error("[ON] Callback should be a function.");t.hasOwnProperty(e)||(t[e]=[]);var r=t[e].push({callback:n,context:i})-1;return function(){t[e].splice(r,1),t[e].length||delete t[e]}},e.off=function(e,n){t.hasOwnProperty(e)&&(t[e]=t[e].filter(function(e){if(e.callback!==n)return e}))},e.publish=function(e){if(t.hasOwnProperty(e)){var n=[].slice.call(arguments,1);t[e].slice(0).forEach(function(e){e.callback.apply(e.context,n)})}},e.publish},ce={PENDING:"pending",CHANGED:"changed",COMPLETE:"complete"},ue={AAM:"aam",ADCLOUD:"adcloud",ANALYTICS:"aa",CAMPAIGN:"campaign",ECID:"ecid",LIVEFYRE:"livefyre",TARGET:"target",VIDEO_ANALYTICS:"videoaa"},de=(C={},t(C,ue.AAM,565),t(C,ue.ECID,565),C),fe=(I={},t(I,ue.AAM,[1,2,5]),t(I,ue.ECID,[1,2,5]),I),pe=function(e){return Object.keys(e).map(function(t){return e[t]})}(ue),ge=function(){var e={};return e.callbacks=Object.create(null),e.add=function(t,n){if(!c(n))throw new Error("[callbackRegistryFactory] Make sure callback is a function or an array of functions.");e.callbacks[t]=e.callbacks[t]||[];var i=e.callbacks[t].push(n)-1;return function(){e.callbacks[t].splice(i,1)}},e.execute=function(t,n){if(e.callbacks[t]){n=void 0===n?[]:n,n=n instanceof Array?n:[n];try{for(;e.callbacks[t].length;){var i=e.callbacks[t].shift();"function"==typeof i?i.apply(null,n):i instanceof Array&&i[1].apply(i[0],n)}delete e.callbacks[t]}catch(e){}}},e.executeAll=function(t,n){(n||t&&!l(t))&&Object.keys(e.callbacks).forEach(function(n){var i=void 0!==t[n]?t[n]:"";e.execute(n,i)},e)},e.hasCallbacks=function(){return Boolean(Object.keys(e.callbacks).length)},e},me=function(){},he=function(e){var t=window,n=t.console;return!!n&&"function"==typeof n[e]},_e=function(e,t,n){return n()?function(){if(he(e)){for(var n=arguments.length,i=new Array(n),r=0;r-1})},ye=function(e,t){return e.reduce(function(e,n){return e[n]=t,e},{})},be=function(e){return JSON.parse(JSON.stringify(e))},Oe=function(e){return"[object Array]"===Object.prototype.toString.call(e)&&!e.length},Me=function(e){if(Te(e))return e;try{return JSON.parse(e)}catch(e){return{}}},ke=function(e){return void 0===e||(Te(e)?Ae(Object.keys(e)):Ee(e))},Ee=function(e){try{var t=JSON.parse(e);return!!e&&ve(e,"string")&&Ae(Object.keys(t))}catch(e){return!1}},Te=function(e){return null!==e&&ve(e,"object")&&!1===Array.isArray(e)},Le=function(){},Pe=function(e){return ve(e,"function")?e():e},Re=function(e,t){ke(e)||Ie.error("".concat(t))},we=function(e){return Object.keys(e).map(function(t){return e[t]})},Fe=function(e){return we(e).filter(function(e,t,n){return n.indexOf(e)===t})},Ne=function(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.command,i=t.params,r=void 0===i?{}:i,a=t.callback,o=void 0===a?Le:a;if(!n||-1===n.indexOf("."))throw new Error("[OptIn.execute] Please provide a valid command.");try{var s=n.split("."),l=e[s[0]],c=s[1];if(!l||"function"!=typeof l[c])throw new Error("Make sure the plugin and API name exist.");var u=Object.assign(r,{callback:o});l[c].call(l,u)}catch(e){Ie.error("[execute] Something went wrong: "+e.message)}}};f.prototype=Object.create(Error.prototype),f.prototype.constructor=f;var xe="fetchPermissions",je="[OptIn#registerPlugin] Plugin is invalid.";p.Categories=ue,p.TimeoutError=f;var Ve=Object.freeze({OptIn:p,IabPlugin:h}),He=function(e,t){e.publishDestinations=function(n){var i=arguments[1],r=arguments[2];try{r="function"==typeof r?r:n.callback}catch(e){r=function(){}}var a=t;if(!a.readyToAttachIframePreliminary())return void r({error:"The destination publishing iframe is disabled in the Visitor library."});if("string"==typeof n){if(!n.length)return void r({error:"subdomain is not a populated string."});if(!(i instanceof Array&&i.length))return void r({error:"messages is not a populated array."});var o=!1;if(i.forEach(function(e){\n"string"==typeof e&&e.length&&(a.addMessage(e),o=!0)}),!o)return void r({error:"None of the messages are populated strings."})}else{if(!j.isObject(n))return void r({error:"Invalid parameters passed."});var s=n;if("string"!=typeof(n=s.subdomain)||!n.length)return void r({error:"config.subdomain is not a populated string."});var l=s.urlDestinations;if(!(l instanceof Array&&l.length))return void r({error:"config.urlDestinations is not a populated array."});var c=[];l.forEach(function(e){j.isObject(e)&&(e.hideReferrer?e.message&&a.addMessage(e.message):c.push(e))});!function e(){c.length&&setTimeout(function(){var t=new Image,n=c.shift();t.src=n.url,a.onPageDestinationsFired.push(n),e()},100)}()}a.iframe?(r({message:"The destination publishing iframe is already attached and loaded."}),a.requestToProcess()):!e.subdomain&&e._getField("MCMID")?(a.subdomain=n,a.doAttachIframe=!0,a.url=a.getUrl(),a.readyToAttachIframe()?(a.iframeLoadedCallbacks.push(function(e){r({message:"Attempted to attach and load the destination publishing iframe through this API call. Result: "+(e.message||"no result")})}),a.attachIframe()):r({error:"Encountered a problem in attempting to attach and load the destination publishing iframe through this API call."})):a.iframeLoadedCallbacks.push(function(e){r({message:"Attempted to attach and load the destination publishing iframe through normal Visitor API processing. Result: "+(e.message||"no result")})})}},Ue=function e(t){function n(e,t){return e>>>t|e<<32-t}for(var i,r,a=Math.pow,o=a(2,32),s="",l=[],c=8*t.length,u=e.h=e.h||[],d=e.k=e.k||[],f=d.length,p={},g=2;f<64;g++)if(!p[g]){for(i=0;i<313;i+=g)p[i]=g;u[f]=a(g,.5)*o|0,d[f++]=a(g,1/3)*o|0}for(t+="\x80";t.length%64-56;)t+="\\0";for(i=0;i>8)return;l[i>>2]|=r<<(3-i)%4*8}for(l[l.length]=c/o|0,l[l.length]=c,r=0;r>>3)+m[i-7]+(n(C,17)^n(C,19)^C>>>10)|0);u=[S+((n(I,2)^n(I,13)^n(I,22))+(I&u[1]^I&u[2]^u[1]&u[2]))|0].concat(u),u[4]=u[4]+S|0}for(i=0;i<8;i++)u[i]=u[i]+h[i]|0}for(i=0;i<8;i++)for(r=3;r+1;r--){var D=u[i]>>8*r&255;s+=(D<16?0:"")+D.toString(16)}return s},Be=function(e,t){return"SHA-256"!==t&&"SHA256"!==t&&"sha256"!==t&&"sha-256"!==t||(e=Ue(e)),e},Ge=function(e){return String(e).trim().toLowerCase()},Ye=Ve.OptIn;j.defineGlobalNamespace(),window.adobe.OptInCategories=Ye.Categories;var qe=function(t,n,i){function r(e){var t=e;return function(e){var n=e||v.location.href;try{var i=g._extractParamFromUri(n,t);if(i)return w.parsePipeDelimetedKeyValues(i)}catch(e){}}}function a(e){function t(e,t,n){e&&e.match(re.VALID_VISITOR_ID_REGEX)&&(n===A&&(I=!0),t(e))}t(e[A],g.setMarketingCloudVisitorID,A),g._setFieldExpire(k,-1),t(e[O],g.setAnalyticsVisitorID)}function o(e){e=e||{},g._supplementalDataIDCurrent=e.supplementalDataIDCurrent||"",g._supplementalDataIDCurrentConsumed=e.supplementalDataIDCurrentConsumed||{},g._supplementalDataIDLast=e.supplementalDataIDLast||"",g._supplementalDataIDLastConsumed=e.supplementalDataIDLastConsumed||{}}function s(e){function t(e,t,n){return n=n?n+="|":n,n+=e+"="+encodeURIComponent(t)}function n(e,n){var i=n[0],r=n[1];return null!=r&&r!==T&&(e=t(i,r,e)),e}var i=e.reduce(n,"");return function(e){var t=w.getTimestampInSeconds();return e=e?e+="|":e,e+="TS="+t}(i)}function l(e){var t=e.minutesToLive,n="";return(g.idSyncDisableSyncs||g.disableIdSyncs)&&(n=n||"Error: id syncs have been disabled"),"string"==typeof e.dpid&&e.dpid.length||(n=n||"Error: config.dpid is empty"),"string"==typeof e.url&&e.url.length||(n=n||"Error: config.url is empty"),void 0===t?t=20160:(t=parseInt(t,10),(isNaN(t)||t<=0)&&(n=n||"Error: config.minutesToLive needs to be a positive number")),{error:n,ttl:t}}function c(){return!!g.configs.doesOptInApply&&!(m.optIn.isComplete&&u())}function u(){return g.configs.isIabContext?m.optIn.isApproved(m.optIn.Categories.ECID)&&C:m.optIn.isApproved(m.optIn.Categories.ECID)}function d(e,t){if(C=!0,e)throw new Error("[IAB plugin] : "+e);t.gdprApplies&&(h=t.consentString),g.init(),p()}function f(){m.optIn.isApproved(m.optIn.Categories.ECID)&&(g.configs.isIabContext?m.optIn.execute({command:"iabPlugin.fetchConsentData",callback:d}):(g.init(),p()))}function p(){m.optIn.off("complete",f)}if(!i||i.split("").reverse().join("")!==t)throw new Error("Please use `Visitor.getInstance` to instantiate Visitor.");var g=this,m=window.adobe,h="",C=!1,I=!1;g.version="4.4.0";var v=_,S=v.Visitor;S.version=g.version,S.AuthState=E.AUTH_STATE,S.OptOut=E.OPT_OUT,v.s_c_in||(v.s_c_il=[],v.s_c_in=0),g._c="Visitor",g._il=v.s_c_il,g._in=v.s_c_in,g._il[g._in]=g,v.s_c_in++,g._instanceType="regular",g._log={requests:[]},g.marketingCloudOrgID=t,g.cookieName="AMCV_"+t,g.sessionCookieName="AMCVS_"+t,g.cookieDomain=$(),g.loadSSL=v.location.protocol.toLowerCase().indexOf("https")>=0,g.loadTimeout=3e4,g.CORSErrors=[],g.marketingCloudServer=g.audienceManagerServer="dpm.demdex.net",g.sdidParamExpiry=30;var D=null,A="MCMID",y="MCIDTS",b="A",O="MCAID",M="AAM",k="MCAAMB",T="NONE",L=function(e){return!Object.prototype[e]},P=ie(g);g.FIELDS=E.FIELDS,g.cookieRead=function(e){return Q.get(e)},g.cookieWrite=function(e,t,n){var i=g.cookieLifetime?(""+g.cookieLifetime).toUpperCase():"",r=!1;return g.configs&&g.configs.secureCookie&&"https:"===location.protocol&&(r=!0),Q.set(e,""+t,{expires:n,domain:g.cookieDomain,cookieLifetime:i,secure:r})},g.resetState=function(e){e?g._mergeServerState(e):o()},g._isAllowedDone=!1,g._isAllowedFlag=!1,g.isAllowed=function(){return g._isAllowedDone||(g._isAllowedDone=!0,(g.cookieRead(g.cookieName)||g.cookieWrite(g.cookieName,"T",1))&&(g._isAllowedFlag=!0)),"T"===g.cookieRead(g.cookieName)&&g._helpers.removeCookie(g.cookieName),g._isAllowedFlag},g.setMarketingCloudVisitorID=function(e){g._setMarketingCloudFields(e)},g._use1stPartyMarketingCloudServer=!1,g.getMarketingCloudVisitorID=function(e,t){g.marketingCloudServer&&g.marketingCloudServer.indexOf(".demdex.net")<0&&(g._use1stPartyMarketingCloudServer=!0);var n=g._getAudienceManagerURLData("_setMarketingCloudFields"),i=n.url;return g._getRemoteField(A,i,e,t,n)},g.getVisitorValues=function(e,t){var n={MCMID:{fn:g.getMarketingCloudVisitorID,args:[!0],context:g},MCOPTOUT:{fn:g.isOptedOut,args:[void 0,!0],context:g},MCAID:{fn:g.getAnalyticsVisitorID,args:[!0],context:g},MCAAMLH:{fn:g.getAudienceManagerLocationHint,args:[!0],context:g},MCAAMB:{fn:g.getAudienceManagerBlob,args:[!0],context:g}},i=t&&t.length?j.pluck(n,t):n;z(i,e)},g._currentCustomerIDs={},g._customerIDsHashChanged=!1,g._newCustomerIDsHash="",g.setCustomerIDs=function(t,n){function i(){g._customerIDsHashChanged=!1}if(!g.isOptedOut()&&t){if(!j.isObject(t)||j.isObjectEmpty(t))return!1;g._readVisitor();var r,a,o;for(r in t)if(L(r)&&(a=t[r],n=a.hasOwnProperty("hashType")?a.hashType:n,a))if("object"===e(a)){var s={};if(a.id){if(n){if(!(o=Be(Ge(a.id),n)))return;a.id=o,s.hashType=n}s.id=a.id}void 0!=a.authState&&(s.authState=a.authState),g._currentCustomerIDs[r]=s}else if(n){if(!(o=Be(Ge(a),n)))return;g._currentCustomerIDs[r]={id:o,hashType:n}}else g._currentCustomerIDs[r]={id:a};var l=g.getCustomerIDs(),c=g._getField("MCCIDH"),u="";c||(c=0);for(r in l)L(r)&&(a=l[r],u+=(u?"|":"")+r+"|"+(a.id?a.id:"")+(a.authState?a.authState:""));g._newCustomerIDsHash=String(g._hash(u)),g._newCustomerIDsHash!==c&&(g._customerIDsHashChanged=!0,g._mapCustomerIDs(i))}},g.getCustomerIDs=function(){g._readVisitor();var e,t,n={};for(e in g._currentCustomerIDs)L(e)&&(t=g._currentCustomerIDs[e],n[e]||(n[e]={}),t.id&&(n[e].id=t.id),void 0!=t.authState?n[e].authState=t.authState:n[e].authState=S.AuthState.UNKNOWN,t.hashType&&(n[e].hashType=t.hashType));return n},g.setAnalyticsVisitorID=function(e){g._setAnalyticsFields(e)},g.getAnalyticsVisitorID=function(e,t,n){if(!w.isTrackingServerPopulated()&&!n)return g._callCallback(e,[""]),"";var i="";if(n||(i=g.getMarketingCloudVisitorID(function(t){g.getAnalyticsVisitorID(e,!0)})),i||n){var r=n?g.marketingCloudServer:g.trackingServer,a="";g.loadSSL&&(n?g.marketingCloudServerSecure&&(r=g.marketingCloudServerSecure):g.trackingServerSecure&&(r=g.trackingServerSecure));var o={};if(r){var s="http"+(g.loadSSL?"s":"")+"://"+r+"/id",l="d_visid_ver="+g.version+"&mcorgid="+encodeURIComponent(g.marketingCloudOrgID)+(i?"&mid="+encodeURIComponent(i):"")+(g.idSyncDisable3rdPartySyncing||g.disableThirdPartyCookies?"&d_coppa=true":""),c=["s_c_il",g._in,"_set"+(n?"MarketingCloud":"Analytics")+"Fields"];a=s+"?"+l+"&callback=s_c_il%5B"+g._in+"%5D._set"+(n?"MarketingCloud":"Analytics")+"Fields",o.corsUrl=s+"?"+l,o.callback=c}return o.url=a,g._getRemoteField(n?A:O,a,e,t,o)}return""},g.getAudienceManagerLocationHint=function(e,t){if(g.getMarketingCloudVisitorID(function(t){g.getAudienceManagerLocationHint(e,!0)})){var n=g._getField(O);if(!n&&w.isTrackingServerPopulated()&&(n=g.getAnalyticsVisitorID(function(t){g.getAudienceManagerLocationHint(e,!0)})),n||!w.isTrackingServerPopulated()){var i=g._getAudienceManagerURLData(),r=i.url;return g._getRemoteField("MCAAMLH",r,e,t,i)}}return""},g.getLocationHint=g.getAudienceManagerLocationHint,g.getAudienceManagerBlob=function(e,t){if(g.getMarketingCloudVisitorID(function(t){g.getAudienceManagerBlob(e,!0)})){var n=g._getField(O);if(!n&&w.isTrackingServerPopulated()&&(n=g.getAnalyticsVisitorID(function(t){g.getAudienceManagerBlob(e,!0)})),n||!w.isTrackingServerPopulated()){var i=g._getAudienceManagerURLData(),r=i.url;return g._customerIDsHashChanged&&g._setFieldExpire(k,-1),g._getRemoteField(k,r,e,t,i)}}return""},g._supplementalDataIDCurrent="",g._supplementalDataIDCurrentConsumed={},g._supplementalDataIDLast="",g._supplementalDataIDLastConsumed={},g.getSupplementalDataID=function(e,t){g._supplementalDataIDCurrent||t||(g._supplementalDataIDCurrent=g._generateID(1));var n=g._supplementalDataIDCurrent;return g._supplementalDataIDLast&&!g._supplementalDataIDLastConsumed[e]?(n=g._supplementalDataIDLast,g._supplementalDataIDLastConsumed[e]=!0):n&&(g._supplementalDataIDCurrentConsumed[e]&&(g._supplementalDataIDLast=g._supplementalDataIDCurrent,g._supplementalDataIDLastConsumed=g._supplementalDataIDCurrentConsumed,g._supplementalDataIDCurrent=n=t?"":g._generateID(1),g._supplementalDataIDCurrentConsumed={}),n&&(g._supplementalDataIDCurrentConsumed[e]=!0)),n};var R=!1;g._liberatedOptOut=null,g.getOptOut=function(e,t){var n=g._getAudienceManagerURLData("_setMarketingCloudFields"),i=n.url;if(u())return g._getRemoteField("MCOPTOUT",i,e,t,n);if(g._registerCallback("liberatedOptOut",e),null!==g._liberatedOptOut)return g._callAllCallbacks("liberatedOptOut",[g._liberatedOptOut]),R=!1,g._liberatedOptOut;if(R)return null;R=!0;var r="liberatedGetOptOut";return n.corsUrl=n.corsUrl.replace(/dpm\\.demdex\\.net\\/id\\?/,"dpm.demdex.net/optOutStatus?"),n.callback=[r],_[r]=function(e){if(e===Object(e)){var t,n,i=j.parseOptOut(e,t,T);t=i.optOut,n=1e3*i.d_ottl,g._liberatedOptOut=t,setTimeout(function(){g._liberatedOptOut=null},n)}g._callAllCallbacks("liberatedOptOut",[t]),R=!1},P.fireCORS(n),null},g.isOptedOut=function(e,t,n){t||(t=S.OptOut.GLOBAL);var i=g.getOptOut(function(n){var i=n===S.OptOut.GLOBAL||n.indexOf(t)>=0;g._callCallback(e,[i])},n);return i?i===S.OptOut.GLOBAL||i.indexOf(t)>=0:null},g._fields=null,g._fieldsExpired=null,g._hash=function(e){var t,n,i=0;if(e)for(t=0;t0;)g._callCallback(n.shift(),t)}},g._addQuerystringParam=function(e,t,n,i){var r=encodeURIComponent(t)+"="+encodeURIComponent(n),a=w.parseHash(e),o=w.hashlessUrl(e);if(-1===o.indexOf("?"))return o+"?"+r+a;var s=o.split("?"),l=s[0]+"?",c=s[1];return l+w.addQueryParamAtLocation(c,r,i)+a},g._extractParamFromUri=function(e,t){var n=new RegExp("[\\\\?]"+t+"=([^]*)"),i=n.exec(e);if(i&&i.length)return decodeURIComponent(i[1])},g._parseAdobeMcFromUrl=r(re.ADOBE_MC),g._parseAdobeMcSdidFromUrl=r(re.ADOBE_MC_SDID),g._attemptToPopulateSdidFromUrl=function(e){var n=g._parseAdobeMcSdidFromUrl(e),i=1e9;n&&n.TS&&(i=w.getTimestampInSeconds()-n.TS),n&&n.SDID&&n.MCORGID===t&&ire.ADOBE_MC_TTL_IN_MIN||e.MCORGID!==t)return;a(e)}},g._mergeServerState=function(e){if(e)try{if(e=function(e){return w.isObject(e)?e:JSON.parse(e)}(e),e[g.marketingCloudOrgID]){var t=e[g.marketingCloudOrgID];!function(e){w.isObject(e)&&g.setCustomerIDs(e)}(t.customerIDs),o(t.sdid)}}catch(e){throw new Error("`serverState` has an invalid format.")}},g._timeout=null,g._loadData=function(e,t,n,i){t=g._addQuerystringParam(t,"d_fieldgroup",e,1),i.url=g._addQuerystringParam(i.url,"d_fieldgroup",e,1),i.corsUrl=g._addQuerystringParam(i.corsUrl,"d_fieldgroup",e,1),N.fieldGroupObj[e]=!0,i===Object(i)&&i.corsUrl&&"XMLHttpRequest"===P.corsMetadata.corsType&&P.fireCORS(i,n,e)},g._clearTimeout=function(e){null!=g._timeout&&g._timeout[e]&&(clearTimeout(g._timeout[e]),g._timeout[e]=0)},g._settingsDigest=0,g._getSettingsDigest=function(){if(!g._settingsDigest){var e=g.version;g.audienceManagerServer&&(e+="|"+g.audienceManagerServer),g.audienceManagerServerSecure&&(e+="|"+g.audienceManagerServerSecure),g._settingsDigest=g._hash(e)}return g._settingsDigest},g._readVisitorDone=!1,g._readVisitor=function(){if(!g._readVisitorDone){g._readVisitorDone=!0;var e,t,n,i,r,a,o=g._getSettingsDigest(),s=!1,l=g.cookieRead(g.cookieName),c=new Date;if(l||I||g.discardTrackingServerECID||(l=g.cookieRead(re.FIRST_PARTY_SERVER_COOKIE)),null==g._fields&&(g._fields={}),l&&"T"!==l)for(l=l.split("|"),l[0].match(/^[\\-0-9]+$/)&&(parseInt(l[0],10)!==o&&(s=!0),l.shift()),l.length%2==1&&l.pop(),e=0;e1?(r=parseInt(t[1],10),a=t[1].indexOf("s")>0):(r=0,a=!1),s&&("MCCIDH"===n&&(i=""),r>0&&(r=c.getTime()/1e3-60)),n&&i&&(g._setField(n,i,1),r>0&&(g._fields["expire"+n]=r+(a?"s":""),(c.getTime()>=1e3*r||a&&!g.cookieRead(g.sessionCookieName))&&(g._fieldsExpired||(g._fieldsExpired={}),g._fieldsExpired[n]=!0)));!g._getField(O)&&w.isTrackingServerPopulated()&&(l=g.cookieRead("s_vi"))&&(l=l.split("|"),l.length>1&&l[0].indexOf("v1")>=0&&(i=l[1],e=i.indexOf("["),e>=0&&(i=i.substring(0,e)),i&&i.match(re.VALID_VISITOR_ID_REGEX)&&g._setField(O,i)))}},g._appendVersionTo=function(e){var t="vVersion|"+g.version,n=e?g._getCookieVersion(e):null;return n?Z.areVersionsDifferent(n,g.version)&&(e=e.replace(re.VERSION_REGEX,t)):e+=(e?"|":"")+t,e},g._writeVisitor=function(){var e,t,n=g._getSettingsDigest();for(e in g._fields)L(e)&&g._fields[e]&&"expire"!==e.substring(0,6)&&(t=g._fields[e],n+=(n?"|":"")+e+(g._fields["expire"+e]?"-"+g._fields["expire"+e]:"")+"|"+t);n=g._appendVersionTo(n),g.cookieWrite(g.cookieName,n,1)},g._getField=function(e,t){return null==g._fields||!t&&g._fieldsExpired&&g._fieldsExpired[e]?null:g._fields[e]},g._setField=function(e,t,n){null==g._fields&&(g._fields={}),g._fields[e]=t,n||g._writeVisitor()},g._getFieldList=function(e,t){var n=g._getField(e,t);return n?n.split("*"):null},g._setFieldList=function(e,t,n){g._setField(e,t?t.join("*"):"",n)},g._getFieldMap=function(e,t){var n=g._getFieldList(e,t);if(n){var i,r={};for(i=0;i0?e.substr(t):""},hashlessUrl:function(e){var t=e.indexOf("#");return t>0?e.substr(0,t):e},addQueryParamAtLocation:function(e,t,n){var i=e.split("&");return n=null!=n?n:i.length,i.splice(n,0,t),i.join("&")},isFirstPartyAnalyticsVisitorIDCall:function(e,t,n){if(e!==O)return!1;var i;return t||(t=g.trackingServer),n||(n=g.trackingServerSecure),!("string"!=typeof(i=g.loadSSL?n:t)||!i.length)&&(i.indexOf("2o7.net")<0&&i.indexOf("omtrdc.net")<0)},isObject:function(e){return Boolean(e&&e===Object(e))},removeCookie:function(e){Q.remove(e,{domain:g.cookieDomain})},isTrackingServerPopulated:function(){return!!g.trackingServer||!!g.trackingServerSecure},getTimestampInSeconds:function(){return Math.round((new Date).getTime()/1e3)},parsePipeDelimetedKeyValues:function(e){return e.split("|").reduce(function(e,t){var n=t.split("=");return e[n[0]]=decodeURIComponent(n[1]),e},{})},generateRandomString:function(e){e=e||5;for(var t="",n="abcdefghijklmnopqrstuvwxyz0123456789";e--;)t+=n[Math.floor(Math.random()*n.length)];return t},normalizeBoolean:function(e){return"true"===e||"false"!==e&&e},parseBoolean:function(e){return"true"===e||"false"!==e&&null},replaceMethodsWithFunction:function(e,t){for(var n in e)e.hasOwnProperty(n)&&"function"==typeof e[n]&&(e[n]=t);return e}};g._helpers=w;var F=ae(g,S);g._destinationPublishing=F,g.timeoutMetricsLog=[];var N={isClientSideMarketingCloudVisitorID:null,MCIDCallTimedOut:null,AnalyticsIDCallTimedOut:null,AAMIDCallTimedOut:null,fieldGroupObj:{},setState:function(e,t){switch(e){case"MC":!1===t?!0!==this.MCIDCallTimedOut&&(this.MCIDCallTimedOut=!1):this.MCIDCallTimedOut=t;break;case b:!1===t?!0!==this.AnalyticsIDCallTimedOut&&(this.AnalyticsIDCallTimedOut=!1):this.AnalyticsIDCallTimedOut=t;break;case M:!1===t?!0!==this.AAMIDCallTimedOut&&(this.AAMIDCallTimedOut=!1):this.AAMIDCallTimedOut=t}}};g.isClientSideMarketingCloudVisitorID=function(){return N.isClientSideMarketingCloudVisitorID},g.MCIDCallTimedOut=function(){return N.MCIDCallTimedOut},g.AnalyticsIDCallTimedOut=function(){return N.AnalyticsIDCallTimedOut},g.AAMIDCallTimedOut=function(){return N.AAMIDCallTimedOut},g.idSyncGetOnPageSyncInfo=function(){return g._readVisitor(),g._getField("MCSYNCSOP")},g.idSyncByURL=function(e){if(!g.isOptedOut()){var t=l(e||{});if(t.error)return t.error;var n,i,r=e.url,a=encodeURIComponent,o=F;return r=r.replace(/^https:/,"").replace(/^http:/,""),n=j.encodeAndBuildRequest(["",e.dpid,e.dpuuid||""],","),i=["ibs",a(e.dpid),"img",a(r),t.ttl,"",n],o.addMessage(i.join("|")),o.requestToProcess(),"Successfully queued"}},g.idSyncByDataSource=function(e){if(!g.isOptedOut())return e===Object(e)&&"string"==typeof e.dpuuid&&e.dpuuid.length?(e.url="//dpm.demdex.net/ibs:dpid="+e.dpid+"&dpuuid="+e.dpuuid,g.idSyncByURL(e)):"Error: config or config.dpuuid is empty"},He(g,F),g._getCookieVersion=function(e){e=e||g.cookieRead(g.cookieName);var t=re.VERSION_REGEX.exec(e);return t&&t.length>1?t[1]:null},g._resetAmcvCookie=function(e){var t=g._getCookieVersion();t&&!Z.isLessThan(t,e)||w.removeCookie(g.cookieName)},g.setAsCoopSafe=function(){D=!0},g.setAsCoopUnsafe=function(){D=!1},function(){if(g.configs=Object.create(null),w.isObject(n))for(var e in n)L(e)&&(g[e]=n[e],g.configs[e]=n[e])}(),function(){[["getMarketingCloudVisitorID"],["setCustomerIDs",void 0],["getAnalyticsVisitorID"],["getAudienceManagerLocationHint"],["getLocationHint"],["getAudienceManagerBlob"]].forEach(function(e){var t=e[0],n=2===e.length?e[1]:"",i=g[t];g[t]=function(e){return u()&&g.isAllowed()?i.apply(g,arguments):("function"==typeof e&&g._callCallback(e,[n]),n)}})}(),g.init=function(){if(c())return m.optIn.fetchPermissions(f,!0);!function(){if(w.isObject(n)){g.idSyncContainerID=g.idSyncContainerID||0,D="boolean"==typeof g.isCoopSafe?g.isCoopSafe:w.parseBoolean(g.isCoopSafe),g.resetBeforeVersion&&g._resetAmcvCookie(g.resetBeforeVersion),g._attemptToPopulateIdsFromUrl(),g._attemptToPopulateSdidFromUrl(),g._readVisitor();var e=g._getField(y),t=Math.ceil((new Date).getTime()/re.MILLIS_PER_DAY);g.idSyncDisableSyncs||g.disableIdSyncs||!F.canMakeSyncIDCall(e,t)||(g._setFieldExpire(k,-1),g._setField(y,t)),g.getMarketingCloudVisitorID(),g.getAudienceManagerLocationHint(),g.getAudienceManagerBlob(),g._mergeServerState(g.serverState)}else g._attemptToPopulateIdsFromUrl(),g._attemptToPopulateSdidFromUrl()}(),function(){if(!g.idSyncDisableSyncs&&!g.disableIdSyncs){F.checkDPIframeSrc();var e=function(){var e=F;e.readyToAttachIframe()&&e.attachIframe()};v.addEventListener("load",function(){S.windowLoaded=!0,e()});try{te.receiveMessage(function(e){F.receiveMessage(e.data)},F.iframeHost)}catch(e){}}}(),function(){g.whitelistIframeDomains&&re.POST_MESSAGE_ENABLED&&(g.whitelistIframeDomains=g.whitelistIframeDomains instanceof Array?g.whitelistIframeDomains:[g.whitelistIframeDomains],g.whitelistIframeDomains.forEach(function(e){var n=new B(t,e),i=K(g,n);te.receiveMessage(i,e)}))}()}};qe.config=se,_.Visitor=qe;var Xe=qe,We=function(e){if(j.isObject(e))return Object.keys(e).filter(function(t){return""!==e[t]}).reduce(function(t,n){var i="doesOptInApply"!==n?e[n]:se.normalizeConfig(e[n]),r=j.normalizeBoolean(i);return t[n]=r,t},Object.create(null))},Je=Ve.OptIn,Ke=Ve.IabPlugin;return Xe.getInstance=function(e,t){if(!e)throw new Error("Visitor requires Adobe Marketing Cloud Org ID.");e.indexOf("@")<0&&(e+="@AdobeOrg");var n=function(){var t=_.s_c_il;if(t)for(var n=0;n= 2) {\n returnString = value[1];\n }\n return returnString;\n })(),\n 'news.featureflag': s.cookieRead('featureFlag') || s.noValue,\n 'news.homepagecurtain': (function () {\n var cookieName = 'curtainEnd';\n var validDate = function (d) {\n return d && d.getTime && !isNaN(d.getTime());\n };\n var cookieVal = s.cookieRead(cookieName);\n var curDate = cookieVal && new Date(parseInt(cookieVal));\n var now = new Date();\n if (!cookieVal || !validDate(curDate)) {\n return s.noValue;\n }\n else if (now <= curDate) {\n return 'yes';\n }\n else {\n return 'no';\n }\n })(),\n 'news.appversion': $t('jsonLd.Dataset.0.appVersion', s.noValue),\n 'news.webnotification': (function () {\n try {\n return Notification.permission;\n }\n catch {\n return 'not available';\n }\n })(),\n 'news.bedrockid': getUserInfo().ramenAuthUserId || s.noValue,\n // TODO - subscription plan - source will be undefined now, need to check once integration is provided\n 'news.subcriptionplan': getUserInfo().subscriptionPlan || s.noValue,\n },\n s.contextData,\n );\n\n // have identity state update each call\n s.contextData['news.identityauth']\n = (window.BI && window.BI.userInfo && BI.userInfo.get('identityState')) || s.noValue;\n\n // add the demdex context var\n var demDexCookie = s.Util.cookieRead('aam_uuid') || s.Util.cookieRead('aam_did');\n s.contextData['tve.did'] = demDexCookie ? demDexCookie : 'demdex cookie not set';\n\n // set linkTrackVars to all contextData;\n s.linkTrackVars = false;\n for (var key in s.contextData) {\n key = 'contextData.' + key;\n s.linkTrackVars = s.linkTrackVars ? s.linkTrackVars + ',' + key : key;\n }\n }\n\n /* Plugin Config */\n s.usePlugins = true;\n s.doPlugins = s_doPlugins;\n\n /* plugins and helpers (ignore lint for plugins) */\n\n /*\n * extend arrays recursively\n * by Jeremy F.\n */\n s.extendArray = function (defaults, options) {\n defaults = defaults || {};\n for (var prop in options) {\n if (typeof options[prop] === 'object') {\n defaults[prop] = s.extendArray(defaults[prop], options[prop]);\n }\n else {\n defaults[prop] = options[prop];\n }\n }\n return defaults;\n };\n\n /*\n * Custom getQuerySting to use window.location V1.0 from MDN\n * by Jeremy F.\n */\n\n s.custGetQS = function (key) {\n return unescape(\n window.location.search.replace(\n new RegExp(\n '^(?:.*[&\\\\?]' + escape(key).replace(/[\\\\.\\\\+\\\\*]/g, '\\\\$&') + '(?:\\\\=([^&]*))?)?.*$',\n 'i',\n ),\n '$1',\n ),\n );\n };\n\n /* custom time parting function */\n s.customTimeParting = function (value) {\n var d = new Date();\n var da = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n switch (value) {\n case 'm':\n return ('0' + d.getHours()).slice(-2) + ':' + ('0' + d.getMinutes()).slice(-2);\n case 'h':\n return d.getHours() + ':00';\n case 'dw':\n return da[d.getDay()];\n case 'd':\n return d.getMonth() + 1 + '/' + d.getDate() + '/' + d.getFullYear();\n case 'tz':\n return (d.getTimezoneOffset() / 60) * -1;\n default:\n return '';\n }\n };\n\n /*\n * Plugin: getPreviousValue_v1.0 - return previous value of designated\n * variable (requires split utility)\n */\n s.getPreviousValue = new Function(\n 'v',\n 'c',\n 'el',\n ''\n + 'var s=this,t=new Date,i,j,r=\\'\\';t.setTime(t.getTime()+1800000);if(el'\n + '){if(s.events){i=s.split(el,\\',\\');j=s.split(s.events,\\',\\');for(x in i'\n + '){for(y in j){if(i[x]==j[y]){if(s.c_r(c)) r=s.c_r(c);v?s.c_w(c,v,t)'\n + ':s.c_w(c,\\'no value\\',t);return r}}}}}else{if(s.c_r(c)) r=s.c_r(c);v?'\n + 's.c_w(c,v,t):s.c_w(c,\\'no value\\',t);return r}',\n );\n /*\n * Utility Function: split v1.5 (JS 1.0 compatible)\n */\n s.split = new Function(\n 'l',\n 'd',\n ''\n + 'var i,x=0,a=new Array;while(l){i=l.indexOf(d);i=i>-1?i:l.length;a[x'\n + '++]=l.substring(0,i);l=l.substring(i+d.length);}return a',\n );\n\n s.getVisitNum = new Function(\n ''\n + 'var s\\x3dthis,e\\x3dnew Date(),cval,cvisit,ct\\x3de.getTime(),c\\x3d\\'s_vnum\\',c2\\x3d\\'s'\n + '_invisit\\';e.setTime(ct+30*24*60*60*1000);cval\\x3ds.c_r(c);if(cval){var'\n + ' i\\x3dcval.indexOf(\\'\\x26vn\\x3d\\'),str\\x3dcval.substring(i+4,cval.length),k;}cvis'\n + 'it\\x3ds.c_r(c2);if(cvisit){if(str){e.setTime(ct+30*60*1000);s.c_w(c2,\\''\n + 'true\\',e);return str;}else return \\'unknown visit number\\';}else{if(st'\n + 'r){str++;k\\x3dcval.substring(0,i);e.setTime(k);s.c_w(c,k+\\'\\x26vn\\x3d\\'+str,e)'\n + ';e.setTime(ct+30*60*1000);s.c_w(c2,\\'true\\',e);return str;}else{s.c_w'\n + '(c,ct+30*24*60*60*1000+\\'\\x26vn\\x3d1\\',e);e.setTime(ct+30*60*1000);s.c_w(c2'\n + ',\\'true\\',e);return 1;}}',\n );\n\n // track that its all been loaded;\n $t('track', 'dtm_adobeAppMeasurmentLoaded', { sc_obj: s });\n }\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLfb90859f33e649a4928d88d87924e2e1",name:"60 - univideo - product adapter (conviva) [univideo, d:msnbc.com, d:nbcnews.com, d:telemundo.com, d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:60}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["today.com","telemundo.com","nbcnews.com","msnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/* globals Conviva, BI, uniVideo */\n\n// Conviva provides a tool called Touchstone for validating changes:\n// https://pulse.conviva.com/login?next=/learning-center/content/sensor_developer_center/tools/touchstone_v2/touchstone_2_help.htm\n\n(function () {\n const logEvent = (window.BI && BI.console && BI.console.build('uni_conviva')) || Function.prototype;\n const uniEvent = uniVideo.event;\n\n if (!window.Conviva) {\n logEvent('Error: Missing Conviva Library');\n }\n\n if (!window.ConvivaConfig) {\n logEvent('Skipping Integration: Page Lacks Conviva Configuration');\n return;\n }\n\n const videoAnalytics = Conviva.Analytics.buildVideoAnalytics();\n const adAnalytics = Conviva.Analytics.buildAdAnalytics(videoAnalytics);\n\n // Set device metadata. When WEB is set, Conviva will infer all values from the user agent string.\n Conviva.Analytics.setDeviceMetadata(Conviva.Constants.DeviceMetadata.CATEGORY, Conviva.Constants.DeviceCategory.WEB);\n\n logEvent('Video Analytics Created', videoAnalytics);\n logEvent('Ad Analytics Created', adAnalytics);\n\n const UNKNOWN = 'unknown';\n\n const brands = {\n 'MSNBC': 'msnbc.com',\n 'NBC News': 'nbcnews.com',\n 'Telemundo': 'telemundo.com',\n 'Today': 'today.com',\n };\n\n let [brand] = Object.values(brands).find(v => document.location.hostname.includes(v)) ?? [null, null];\n\n // TODO create an `UNLOAD` event in UniVideo,\n // and attach this function to it.\n const convivaCleanup = () => {\n logEvent('Cleanup Start');\n adAnalytics?.release();\n videoAnalytics?.release();\n Conviva?.Analytics?.release();\n\n logEvent('Cleanup Complete', {\n Analytics: Conviva.Analytics,\n videoAnalytics,\n adAnalytics,\n });\n };\n\n function getBrowserInfo() {\n const userAgent = navigator.userAgent;\n let browserName = UNKNOWN;\n let browserVersion = UNKNOWN;\n // Detecting browser name\n if (userAgent.indexOf('Chrome') > -1) {\n browserName = 'Chrome';\n } else if (userAgent.indexOf('Safari') > -1) {\n browserName = 'Safari';\n } else if (userAgent.indexOf('Firefox') > -1) {\n browserName = 'Firefox';\n } else if (userAgent.indexOf('Edge') > -1) {\n browserName = 'Edge';\n } else if (userAgent.indexOf('MSIE') > -1 || userAgent.indexOf('Trident/') > -1) {\n browserName = 'Internet Explorer';\n }\n // Detecting browser version\n const versionMatch = userAgent.match(/(chrome|safari|firefox|msie|edge|trident)\\/?\\s*([\\d.]+)/i);\n if (versionMatch && versionMatch[2]) {\n browserVersion = versionMatch[2];\n }\n return { name: browserName, version: browserVersion };\n }\n uniVideo.addEventListenerFactory(function conviva() {\n\n\n const { name: browserName, version: browserVersion } = getBrowserInfo();\n\n let contentInfo = {};\n return function eventListener(_e, data) {\n let videoData = data.videoData || {};\n let { eventType } = data;\n\n // Doing nothing unless the events are being emitted by gamma (JW Player).\n // TODO maybe allow UniVideo product adapters to \"detach\" an instance\n // in situations where a product adapter is only interested in a single player.\n if (videoData.playbackAdapter !== 'JW Player') return;\n\n // TODO the `adBreakSkippedEvent`, `adError`\n // `adLoaded` events are emitted by JW Player, but not\n // UniVideo. Consider adding them to UniVideo.\n // Conviva has methods to report all of these.\n\n if (eventType == uniEvent.VIDEO_LOADED) {\n const videoType = videoData.custom?.videoType ?? UNKNOWN; // Usually \"broadcast\" if JW Player\n const contentType = videoTypeToContentType(videoType);\n const mpxMetadata = videoData.custom?.mpxMetadata ?? {};\n\n // Set player framework info\n var playerInfo = {};\n\n playerInfo[Conviva.Constants.FRAMEWORK_NAME] = videoData.playbackAdapter ?? UNKNOWN;\n playerInfo[Conviva.Constants.FRAMEWORK_VERSION] = videoData.custom.playerVersion ?? UNKNOWN;\n\n videoAnalytics.setPlayerInfo(playerInfo);\n\n // Note: Usage of `videoData.custom` is indicative\n // of tight coupling to JW Player. Other players\n // may not have relevant values in these cases.\n // This is a signal that we should consider\n // adding them to uniVideo.videoData, or\n // consider not giving them to conviva\n // if they're not universal.\n contentInfo = {\n [Conviva.Constants.ASSET_NAME]: `[${videoData.guid ?? videoData.custom?.id ?? UNKNOWN}]`,\n [Conviva.Constants.STREAM_URL]: videoData.mediaURL ?? UNKNOWN,\n [Conviva.Constants.IS_LIVE]: contentType,\n // Conviva prefers the application name to be passed as \"PLAYER_NAME\", for legacy purposes.\n [Conviva.Constants.PLAYER_NAME]: brand ?? UNKNOWN,\n [Conviva.Constants.VIEWER_ID]: mpxMetadata?.accountId ?? mpxMetadata?.accountName ?? mpxMetadata?.guid,\n [Conviva.Constants.DURATION]: videoData.duration,\n [Conviva.Constants.DeviceMetadata.BROWSER]: browserName,\n [Conviva.Constants.DeviceMetadata.BROWSER_VERSION]: browserVersion,\n 'profile': mpxMetadata?.accountId ?? 'Unauthenticated',\n 'playerVersion': videoData.custom.playerVersion ?? UNKNOWN,\n 'playerVendor': videoData.playbackAdapter ?? UNKNOWN,\n 'product': videoData.newsNetwork,\n 'dcType': navigator.connection.effectiveType,\n 'c3.cm.contentType': contentType,\n 'viewerEntitlement': data.videoState?.entitlement ?? 'unknown',\n };\n // Create the Conviva session with content info.\n // This should be called as early as possible when the user attempts to watch a video.\n videoAnalytics.reportPlaybackRequested(contentInfo);\n }\n else if (eventType == uniEvent.PLAY) {\n // Update content info with additional data\n contentInfo.streamProtocol = videoData.custom?.playerVersion?.includes('.hls.js') ? 'HLS' : null;\n videoAnalytics.setContentInfo(contentInfo);\n videoAnalytics.reportPlaybackMetric(Conviva.Constants.Playback.PLAYER_STATE, Conviva.Constants.PlayerState.PLAYING);\n }\n else if (eventType == uniEvent.PAUSE) {\n videoAnalytics.reportPlaybackMetric(Conviva.Constants.Playback.PLAYER_STATE, Conviva.Constants.PlayerState.PAUSED);\n }\n else if (eventType == uniEvent.PROGRESS) {\n // Report playhead position in milliseconds\n videoAnalytics.reportPlaybackMetric(Conviva.Constants.Playback.PLAY_HEAD_TIME, data.videoData.playheadPosition);\n }\n else if (eventType === uniEvent.BUFFERING_START) {\n videoAnalytics.reportPlaybackMetric(\n Conviva.Constants.Playback.PLAYER_STATE,\n Conviva.Constants.PlayerState.BUFFERING\n );\n }\n else if (eventType === uniEvent.BUFFERING_END) {\n videoAnalytics.reportPlaybackMetric(\n Conviva.Constants.Playback.PLAYER_STATE,\n Conviva.Constants.PlayerState.PLAYING\n );\n }\n // TODO: Report errors\n // videoAnalytics.reportPlaybackError(errorMessage, Conviva.Constants.ErrorSeverity.FATAL);\n else if (eventType === uniEvent.ERROR) {\n videoAnalytics.reportPlaybackError('Playback error occurred', Conviva.Constants.ErrorSeverity.FATAL);\n // If error results in playback stopping, also call videoAnalytics.reportPlaybackEnded();\n if (data?.fatal === true || data?.playbackStopped === true) {\n videoAnalytics.reportPlaybackEnded();\n }\n }\n else if (eventType === uniEvent.AD_ERROR) {\n videoAnalytics.reportPlaybackError('Ad error occurred', Conviva.Constants.ErrorSeverity.WARNING);\n }\n else if (eventType === uniEvent.UPDATE_QUALITY) {\n const bitrate = videoData.bitrateInKbps;\n if (bitrate) {\n videoAnalytics.reportPlaybackMetric(Conviva.Constants.Playback.BITRATE, bitrate);\n }\n }\n else if (eventType == uniEvent.SEEK_START) {\n videoAnalytics.reportPlaybackMetric(Conviva.Constants.Playback.SEEK_STARTED);\n }\n else if (eventType == uniEvent.SEEK_COMPLETE) {\n videoAnalytics.reportPlaybackMetric(Conviva.Constants.Playback.SEEK_ENDED);\n }\n else if (eventType == uniEvent.COMPLETE) {\n videoAnalytics.reportPlaybackEnded();\n }\n else if (eventType == uniEvent.AD_BREAK_START) {\n // Indicating Ad Break Start for client side ad insertion, with a separate player element for ads\n videoAnalytics.reportAdBreakStarted(Conviva.Constants.AdType.CLIENT_SIDE, Conviva.Constants.AdPlayer.SEPARATE);\n }\n else if (eventType == uniEvent.AD_BREAK_COMPLETE) {\n videoAnalytics.reportAdBreakEnded();\n }\n else if (eventType === uniEvent.UNLOAD) {\n convivaCleanup();\n }\n\n };\n });\n function videoTypeToContentType(videoType) {\n if (videoType === 'nonBroadcastLiveVideo') {\n return Conviva.Constants.StreamType.LIVE;\n } else {\n return Conviva.Constants.StreamType.VOD;\n }\n }\n})();\n\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLfe2365745d964fa487d52dad0dcc7115",name:"50 - Action - mbt_transporter_* [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"\n\n/* globals $t, s */\n(function() {\n window.dtm_pageview = window.dtm_pageview || {};\n window.dtm_pageview.viewedPages = window.dtm_pageview.viewedPages || {}; //list of URLS already tracked (make it exposed, so )\n var viewedPages = window.dtm_pageview.viewedPages; //keep it simple, so its shorter\n var pageTries = {\n default:{timeout: 100, tries: 5}\n };\n\n $t('on', 'mbt_transporter_loadPage', function() {\n // reload ldjson\n // this should be when it is parsed, but loadPage is early from when the meta data is actualy available on the page.\n window.parseJsonLd();\n });\n\n $t('on', 'mbt_transporter_nav', function(e,data) {\n // try to re-parse ldjson until it is a match with the nav data, then trigger pageview\n // this is becuase the metadata loads late on the page vs the nav event. it is most likely a prolem with the component\n pageTries[$t(e.type + '.url', 'na')] = {\n tries : pageTries.default.tries,\n timer : setTimeout(function(){\n var trackView = data.trackView !== false; //this will default all to true if not false\n var url = $t(e.type + '.url', 'na');\n window.parseJsonLd(); // parse again to get jsonld changes\n var index = (function() {\n //this figures out index by compring urls, instead of relying on the provided one.\n var i;\n var dataset = $t('jsonLd.Dataset', []);\n for (i = 0; dataset[i]; i++) {\n if (dataset[i].url && dataset[i].url.match(new RegExp(url + '$' , 'g') )) {\n return i;\n }\n }\n return -1; //if no index from loop, default to -1 for no metadata;\n })();\n if(index != -1 || pageTries[url].tries <= 0){\n //check to see if thise page has been tracked already (only one pageview per URL)\n // also exclude liveblog views from transporter\n if (viewedPages[$t(e.type + '.url')] || $t(e.type + '.type') === 'liveBlog') {\n trackView = false;\n } else {\n viewedPages[$t(e.type + '.url', 'na')] = true;\n trackView = true;\n }\n $t('track', 'dtm_pageView', {\n initiator: 'transporter',\n index: index, // $t(e.type + '.index', index) just use the searched index, to know if there is metadata\n url: $t(e.type + '.url', ''),\n trackView: trackView\n });\n clearTimeout(pageTries[url].timer);\n }\n pageTries[url].tries--;\n },pageTries.default.timeout)\n };\n });\n var handleScrollEvent = function(e) {\n var actionContextData = {\n 'news.pagescrollpercent': $t(e.type + '.percent', s.noValue)\n };\n s.contextData = s.extendArray(s.contextData, actionContextData);\n\n //track action\n s.tl(true, 'o', 'percent scrolled');\n\n //cleanup values after action\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n }\n // trasnporter event is going away\n $t('on', 'mbt_transporter_scrolled_percentage', handleScrollEvent);\n $t('on', 'mbt_scrolled_percentage', handleScrollEvent);\n})();\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLfe2ad4eb73d440a9bce76aa78911c762",name:"50 - univideo - core [univideo, d:msnbc.com, d:nbcnews.com, d:telemundo.com, d:today.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,
source:"(function () {\n /* global $t, BI */\n var logEvent = (window.BI && BI.console && BI.console.build('uni_core')) || Function.prototype;\n\n var isEmpty = function (obj) {\n return Object.keys(obj).length === 0 && obj.constructor === Object;\n };\n\n function clone(obj) {\n return JSON.parse(JSON.stringify(obj));\n }\n\n window.uniVideo = (function () {\n var extend = function (defaults, options) {\n var extended = {};\n var prop;\n for (prop in defaults) {\n if (Object.prototype.hasOwnProperty.call(defaults, prop)) {\n extended[prop] = defaults[prop];\n }\n }\n for (prop in options) {\n if (Object.prototype.hasOwnProperty.call(options, prop)) {\n extended[prop] = options[prop];\n }\n }\n return extended;\n };\n\n // setting up an object to manage auto-incrementing\n // IDs, so that instances and factories have predictable\n // but unique names.\n var idCounter = {};\n\n idCounter.increment = function (name) {\n idCounter[name] = idCounter[name] === undefined ? 0 : idCounter[name] + 1;\n return `${name}_${idCounter[name]}`;\n };\n\n // Creating a constant to help generate IDs\n const ANON = 'anonymous';\n\n // Mapping player instance IDs to state objects\n var instances = {};\n\n // Listing callback functions\n // that will handle univideo\n // events for a single instance.\n var eventListenerFactories = {};\n\n var uniVideo = {};\n\n uniVideo.inspect = function () {\n return { instances, eventListenerFactories };\n };\n\n uniVideo.event = {\n PROGRESS: 'PROGRESS',\n INIT: 'INIT',\n VIDEO_LOADED: 'VIDEO_LOADED',\n PLAY: 'PLAY',\n PAUSE: 'PAUSE',\n SEEK_START: 'SEEK_START',\n SEEK_COMPLETE: 'SEEK_COMPLETE',\n STOP: 'STOP',\n COMPLETE: 'COMPLETE',\n AD_BREAK_START: 'AD_BREAK_START',\n AD_BREAK_COMPLETE: 'AD_BREAK_COMPLETE',\n AD_PLAY: 'AD_PLAY',\n AD_COMPLETE: 'AD_COMPLETE',\n AD_ERROR: 'AD_ERROR',\n AD_LOADED: 'AD_LOADED',\n AD_BREAK_SKIPPED: 'AD_BREAK_SKIPPED',\n FULLSCREEN: 'FULLSCREEN', //TODO this needs to be migrated to state events\n SEGMENT_START: 'SEGMENT_START',\n SEGMENT_END: 'SEGMENT_END',\n BUFFERING_START: 'BUFFERING_START',\n ERROR: 'ERROR',\n UNLOAD: 'UNLOAD', // Added UNLOAD event for cleanup\n UPDATE_QUALITY: 'UPDATE_QUALITY', // for bitrate/quality changes\n };\n //State events are fired internaly by uniVideoCore, not from player adapters\n uniVideo.event['STATE'] = {\n MUTE: 'MUTE',\n FULLSCREEN: 'FULLSCREEN',\n };\n\n // `eventListenerFactory` should be a function that\n // returns another function, `eventListener` so\n // that `eventListener` can make use of state\n // enclosed by `eventListenerFactory`. This allows\n // listeners to handle multiple instances without\n // having to explicitly manage switching between\n // instances.\n uniVideo.addEventListenerFactory = function (eventListenerFactory = () => Function.prototype) {\n let factoryName = eventListenerFactory.name ?? ANON;\n let cleanFactoryName = factoryName.replace(/-/g, '_');\n let factoryId = idCounter.increment(cleanFactoryName);\n\n logEvent('NEW EVENT LISTENER FACTORY', { factoryId, eventListenerFactory });\n\n // Storing the factory functionn for later, so that\n // it can be used to create new event handlers when\n // new univideo instances are created.\n eventListenerFactories[factoryId] = eventListenerFactory;\n\n // Adding an event listener to each existing instance\n Object.values(instances).forEach(instance => {\n // Provide a detach function to the factory\n const detach = () => {\n delete instance.listeners[factoryId];\n };\n instance.listeners[factoryId] = eventListenerFactory(detach);\n });\n };\n\n // Registering $t event\n $t('register', 'uni_videoEvent', { allowDuplicate: true });\n\n // Distributing event data to listeners\n $t('on', 'uni_videoEvent', function (e, data) {\n let instance = instances[data.instanceId];\n\n Object.values(instance.listeners).forEach(eventListener => {\n eventListener(e, data);\n });\n });\n\n uniVideo.buildUniTrack = function ({ uniquePlayerInstanceId, idPrefix } = {}) {\n let cleanIdPrefix = idPrefix ? String(idPrefix).replace(/-/g, '_') : ANON;\n\n let instanceId = uniquePlayerInstanceId\n ? String(uniquePlayerInstanceId).replace(/-/g, '_')\n : idCounter.increment(cleanIdPrefix);\n\n logEvent('New Instance ID', { instanceId });\n\n var videoDataDefaults = {\n adId: '',\n adLength: 0, //seconds\n adName: '',\n adPodName: '', //preroll, midroll, postroll\n assetID: '', //for SCTE info since no ID or title\n dateBroadcast: '', //js toIsoString ex: \"2019-11-06T17:52:27.351Z\"\n datePublished: '', //js toIsoString ex: \"2019-11-06T17:52:27.351Z\"\n duration: 0, //seconds\n guid: '',\n mpxId: '',\n newsNetwork: '',\n playbackAdapter: '',\n playbackAdapterVersion: '',\n playheadPosition: 0, // miliseconds\n playInitiate: '', // (Continuous,Manual,Auto)\n playListId: '',\n playListLabel: '',\n sentiment: '',\n source: '',\n streamType: '', // (linear, vod)\n title: '',\n videoCount: 0,\n videoType: '',\n custom: {},\n bitrateInKbps: null,\n mediaURL: '',\n };\n\n var videoAdDataDefaults = {\n adInsertionType: '', // 'client-side' or 'server-side'\n adServer: '', // e.g., 'Freewheel', 'Google', etc.\n adPosition: '', // preroll, midroll, postroll, etc.\n custom: {},\n };\n\n // video state WHEN the event happened, not after\n var videoStateDefaults = {\n inAd: false,\n inSegment: false,\n segmentPosition: 1,\n adPosition: 1,\n adBreakPosition: 1,\n playState: 'stop', //stop, play, pause, seek\n fullScreen: false,\n isMuted: false,\n entitlement: '', // how the user earned access (e.g., Pro, Plus, MVPD)\n };\n\n // Creating a list of event listeners\n // for the new instance, in case the\n // instance was created after the factory\n // was registered.\n let listenerEntries = Object.entries(eventListenerFactories).map(([factoryId, factory]) => [\n factoryId,\n factory(),\n ]);\n\n let listeners = Object.fromEntries(listenerEntries);\n\n // Creating a new UniVideo instance\n instances[instanceId] = {\n listeners,\n history: [],\n videoData: clone(videoDataDefaults),\n videoState: clone(videoStateDefaults),\n videoAdData: clone(videoAdDataDefaults),\n };\n\n // Creating a reference to the instance\n // for use by uniTrack closures\n var instance = instances[instanceId];\n\n var uniTrack = function ({ eventName, eventData = {} }) {\n //reverse compatibility for single argument\n if (typeof arguments[0] === 'string') {\n eventName = arguments[0];\n }\n\n if (eventName !== 'PROGRESS') {\n instance.history.push(eventName);\n }\n\n $t('track', 'uni_videoEvent', {\n eventType: eventName,\n videoData: instance.videoData,\n videoState: instance.videoState,\n videoAdData: instance.videoAdData,\n instanceId,\n eventData,\n });\n };\n\n uniTrack.videoData = function (newSettings, setDefaults) {\n let videoData = instance.videoData;\n\n if (isEmpty(videoData)) {\n videoData = videoDataDefaults;\n }\n\n if (newSettings) {\n var previousSettings = setDefaults ? videoDataDefaults : videoData;\n instance.videoData = extend(previousSettings, newSettings);\n // Fire UPDATE_QUALITY event if bitrate or similar changes\n if (\n newSettings.bitrateInKbps !== undefined &&\n newSettings.bitrateInKbps !== previousSettings.bitrateInKbps\n ) {\n uniTrack({\n eventName: uniVideo.event.UPDATE_QUALITY,\n eventData: { bitrateInKbps: newSettings.bitrateInKbps }\n });\n }\n } else {\n return clone(videoData);\n }\n };\n\n uniTrack.videoState = function (newSettings, setDefaults) {\n let videoState = instance.videoState;\n\n if (isEmpty(videoState)) {\n videoState = videoStateDefaults;\n }\n\n if (newSettings) {\n var previousSettings = setDefaults ? videoStateDefaults : videoState;\n // update state first\n instance.videoState = extend(previousSettings, newSettings);\n // fire state change events\n if (newSettings.isMuted !== undefined && newSettings.isMuted !== previousSettings.isMuted) {\n uniTrack({ eventName: uniVideo.event.STATE.MUTE, eventData: { isMuted: newSettings.isMuted } });\n }\n } else {\n return clone(videoState);\n }\n };\n\n uniTrack.videoAdData = function (newSettings, setDefaults) {\n let videoAdData = instance.videoAdData;\n if (isEmpty(videoAdData)) {\n videoAdData = videoAdDataDefaults;\n }\n if (newSettings) {\n var previousSettings = setDefaults ? videoAdDataDefaults : videoAdData;\n instance.videoAdData = extend(previousSettings, newSettings);\n } else {\n return clone(videoAdData);\n }\n };\n\n // unload/cleanup a UniVideo instance\n uniVideo.unloadInstance = function(instanceId) {\n const instance = instances[instanceId];\n if (!instance) return;\n // Notify listeners (e.g., Conviva) about unload\n Object.values(instance.listeners).forEach(eventListener => {\n eventListener(uniVideo.event.UNLOAD, { instanceId });\n });\n // Remove the instance\n delete instances[instanceId];\n logEvent('Instance Unloaded', { instanceId });\n };\n\n return uniTrack;\n };\n return uniVideo;\n })();\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLfe3008fafe66413ab391dfd2c38408b6",name:"30 - mParticle - Setup Library [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:30}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/*global $t, _satellite, BI */\n(function () {\n $t('register', 'mParticle_setIdResolved');\n function getBedrockId() {\n return String(BI.userInfo.get('ramenAuthUserId')) || '';\n }\n\n function loadMParticle(bedrockId) {\n var topLevelDomain = document.location.hostname.match(/[^./]+\\.[^./]+$/)[0];\n var mpartIds = {\n 'today.com': '3f8eeba44cd1254a897586bb26fa1c4a',\n 'nbcnews.com': '65ea0b28a73c4c4abd08599774d30799',\n 'msnbc.com': '4c6f61ee9fa74942a781c3ecf77b926e',\n 'telemundo.com': 'us1-09b8a860d541194caaa889a29a469376',\n };\n var mparticle_apikey = mpartIds[topLevelDomain] || false;\n if (mparticle_apikey) {\n (function (apiKey) {\n\n var isLaunchDev = !(\n _satellite &&\n _satellite.environment &&\n _satellite.environment.stage === 'production'\n );\n\n window.mParticle = window.mParticle || {};\n window.mParticle.config = {\n identifyRequest: {\n userIdentities: bedrockId ? { other9: bedrockId } : {}\n },\n identityCallback: function (result) {\n BI?.userInfo.save({ mpid: result.getUser().getMPID() });\n $t('track', 'mParticle_setIdResolved', { mpid: result.getUser().getMPID() });\n },\n rq: [],\n useCookieStorage: true,\n isDevelopmentMode: isLaunchDev,\n };\n window.mParticle.ready = function (f) {\n window.mParticle.config.rq.push(f);\n };\n\n function a(o, t) {\n return function () {\n t && (o = t + '.' + o);\n var e = Array.prototype.slice.call(arguments);\n e.unshift(o), window.mParticle.config.rq.push(e);\n };\n }\n var x = [\n 'endSession',\n 'logError',\n 'logEvent',\n 'logForm',\n 'logLink',\n 'logPageView',\n 'setSessionAttribute',\n 'setAppName',\n 'setAppVersion',\n 'setOptOut',\n 'setPosition',\n 'startNewSession',\n 'startTrackingLocation',\n 'stopTrackingLocation',\n ],\n y = ['setCurrencyCode', 'logCheckout'],\n z = ['login', 'logout', 'modify'];\n x.forEach(function (o) {\n window.mParticle[o] = a(o);\n });\n y.forEach(function (o) {\n window.mParticle.eCommerce = window.mParticle.eCommerce || {};\n window.mParticle.eCommerce[o] = a(o, 'eCommerce');\n });\n z.forEach(function (o) {\n window.mParticle.Identity = window.mParticle.Identity || {};\n window.mParticle.Identity[o] = a(o, 'Identity');\n });\n\n //load script\n var mp = document.createElement('script');\n var sc = document.getElementsByTagName('script')[0];\n mp.type = 'text/javascript';\n mp.async = true;\n mp.src =\n ('https:' == document.location.protocol ? 'https://jssdkcdns' : 'http://jssdkcdn') +\n '.mparticle.com/js/v2/' +\n apiKey +\n '/mparticle.js';\n sc.parentNode.insertBefore(mp, sc);\n })(mparticle_apikey);\n }\n }\n\n function waitForBedrockId(timeoutMs = 3000) {\n return new Promise((resolve) => {\n const start = Date.now();\n const check = () => {\n const id = getBedrockId();\n if (id) resolve(id);\n else if (Date.now() - start > timeoutMs) resolve(null);\n else setTimeout(check, 100);\n };\n check();\n });\n }\n\n\n waitForBedrockId().then((bedrockId) => {\n loadMParticle(bedrockId);\n\n // Optional: dynamic identity update when login happens later\n if (!bedrockId) {\n $t('on', 'ramen_authflow', function (_, eventData) {\n if (eventData?.userId) {\n const id = eventData.userId;\n BI.userInfo.save({ ramenAuthUserId: id });\n\n if (window.mParticle?.Identity?.identify) {\n window.mParticle.Identity.identify({\n userIdentities: { other9: id }\n });\n }\n }\n });\n }\n });\n\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* global $t, mParticle, s, BI */\n(function () {\n function trackMParticle(eventName, eventType, customData) {\n var noValue = 'not available';\n var navigator = window.navigator || {};\n var BIUserInfo = window.BI && window.BI.userInfo || {get:function(){}}; //TODO this should be loaded first\n\n var uxExperiment = (function () {\n //example 2147483647~rv=8~id=b7c90f942ae0282250a0418fbf11f00a~rn=MSNBC_Video_Player_vs._Bento%20B'\n var cookieName = (function () {\n if (window.s.topLevelDomain === 'nbcnews.com') {\n return 'akaas_NBCNews';\n }\n else if (window.s.topLevelDomain === 'msnbc.com') {\n return 'akaas_MSNBC';\n }\n else if (window.s.topLevelDomain === 'today.com') {\n return 'akaas_TODAY';\n }\n else return null;\n })();\n var returnString = 'false';\n var value = window.s.cookieRead(cookieName).split('~');\n if (value.length >= 2) {\n returnString = value[1];\n }\n return returnString;\n })();\n\n var siteBrand = (function () {\n //brand is only today, and everything else is nbcnews\n var vertical = $t('jsonLd.Dataset.0.vertical');\n switch (vertical) {\n case 'today':\n return 'Today';\n case 'msnbc':\n return 'MSNBC';\n case 'telemundo':\n return 'Telemundo';\n default:\n return 'NBC News';\n }\n })();\n\n var globalData = {\n 'adobe uuid': window.s && window.s.cookieRead('aam_uuid'),\n 'adobe marketing cloud': window.s && window.s.visitor && s.visitor.getMarketingCloudVisitorID(),\n 'user agent': navigator.userAgent,\n 'platform': navigator.platform,\n 'product name': 'web',\n 'referrer': BIUserInfo.get('referrer'),\n 'ui experiment': window.s.custGetQS('icid'),\n 'ux experiment': uxExperiment,\n 'feature flag': window.s && window.s.cookieRead('featureFlag'),\n 'campaign id': BIUserInfo.get('cid'),\n 'url': document.location.href,\n 'brand domain': siteBrand,\n 'app version': $t('jsonLd.Dataset.0.appVersion'),\n 'sailthru visitor': BIUserInfo.get('sailthru_visitor'),\n 'airship id': BIUserInfo.get('airship_id'),\n 'identity auth':BIUserInfo.get('identityState'),\n 'isAmp': 'false'\n };\n var combinedData = Object.assign({}, globalData, customData);\n // remove any keys that have noValue\n var filteredData = Object.keys(combinedData).reduce(function (filteredData, key) {\n if (combinedData[key] !== noValue && combinedData[key] !== '') filteredData[key] = combinedData[key];\n return filteredData;\n }, {});\n\n window.mParticle.logEvent(eventName, eventType, filteredData, { 'Facebook.EventSourceUrl': globalData.url });\n }\n\n $t('register', 'mParticle_track_event');\n BI.dependsOn(['mParticle']).then(() => {\n $t('on', 'mParticle_track_event', function (e, data) {\n if (window.mParticle) {\n window.mParticle.ready(\n function () {\n var eventType = data && data.eventType;\n eventType = mParticle.EventType[eventType] || null;\n var eventName = data && data.eventName || null;\n var eventData = data && data.eventData || {};\n if (eventType && eventName) {\n trackMParticle(eventName, eventType, eventData);\n }\n }\n );\n }\n });\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLfef63b9f9bec4e59949d27e00175486e",name:"50 - Action - mbt_producttease_* and mbt_spotlightode_* [d:today.com, d:nbcnews.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["nbcnews.com","today.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals $t, s */\n(function () {\n function track(situation, actionContextData) {\n s.contextData = s.extendArray(s.contextData, actionContextData);\n s.tl(true, 'o', situation);\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n }\n\n const object2String = obj => {\n if (typeof obj === 'string') return obj;\n if (Array.isArray(obj)) return obj.map((item, index) => `item${index}:${item}`).join(';');\n\n return obj && typeof obj === 'object'\n ? Object.entries(obj)\n .map(([key, value]) => `${key}:${value}`)\n .join(';')\n : '';\n };\n\n $t('on', 'mbt_producttease_click', function (e, data) {\n const details = object2String(data);\n\n track('Product Tease Click', {\n 'pev2': 'Product Tease Click',\n 'news.linkmoduledetail': details,\n 'news.linkmoduletype': data?.action || 'click',\n });\n });\n\n $t('on', 'mbt_spotlightode_click', function (e, data) {\n const details = object2String(data);\n\n track('Spotlight Ode Click', {\n 'pev2': 'Spotlight Ode Click',\n 'news.linkmoduledetail': details,\n 'news.linkmoduletype': data?.action || 'click',\n });\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLff72f7f16b98455db3d85c4ac74e7940",name:"50 - Action - mbt_moreloader_click [d:msnbc.com, d:nbcnews.com, d:today.com, d:telemundo.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["msnbc.com","nbcnews.com","today.com","telemundo.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"\n/* globals $t, s */\n$t('on', 'mbt_moreloader_click', function() {\n var actionContextData = {\n 'news.linkmoduledetail': 'Button',\n 'news.linkmoduletype': 'Load More'\n };\n s.contextData = s.extendArray(s.contextData, actionContextData);\n\n //track action\n s.tl(true, 'o', 'load more link click');\n\n //cleanup values after action\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n});\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]}]};var _satellite=function(){"use strict";function n(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function e(n){return"[object Object]"===Object.prototype.toString.call(n)}function t(n){var t,i;return!1!==e(n)&&(void 0===(t=n.constructor)||!1!==e(i=t.prototype)&&!1!==i.hasOwnProperty("isPrototypeOf"))}function i(n){return"string"==typeof n&&-1!==n.indexOf("[")&&-1!==n.indexOf("]")}function a(n){return n.substr(0,n.indexOf("["))}function r(n,e,t){if(n.length&&fe(e)){var o=n[0];if(1!==n.length){var s=n.slice(1);if(!i(o))return r(s,e[o],t);var c=e[o=a(o)];Array.isArray(c)&&c.forEach((function(n){return r(s,n,t)}))}else e.hasOwnProperty(o)&&"string"==typeof e[o]&&(e[o]=t(e[o]))}}if(window.atob){var o="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},s=document,c=Object.assign,u=window,l=u,d=function(n,e,t,i){var a,r=Boolean(e&&Array.isArray(t)),o=Boolean(r&&n),s=document.createElement("a");if(r){var c=function(){var n=new Error("Unable to find the Library Embed Code for Dynamic Host Resolution.");throw n.code="dynamic_host_resolver_constructor_error",n};if(n&&(/^((https?:)?\/\/).+/.test(n)||c(),/^\/\/.+/.test(n)?s.href=l.location.protocol+n:s.href=n),s.hostname||c(),-1===t.indexOf(s.hostname)){var u=new Error("This library is not authorized for this domain. Please contact your CSM for more information.");throw u.code="dynamic_host_not_allowed",u}}var d=function(){if(null!=a)return a;if(o){var n=s.host;/:80$/.test(n)?n=n.replace(":80",""):/:80\/$/.test(n)?n=n.replace(":80/",""):/:443$/.test(n)?n=n.replace(":443",""):/:443\/$/.test(n)&&(n=n.replace(":443/","")),a=s.protocol+"//"+n}else a="";return a},f=function(n){return o&&"string"==typeof n?[d(),"/"===n.charAt(0)?n.slice(1):n].join("/"):n},p={getTurbineHost:d,decorateWithDynamicHost:f,get isDynamicEnforced(){return r}};return l&&i.onDebugChanged((function(n){n?l.dynamicHostResolver=p:delete l.dynamicHostResolver})),p},f=function(n){var e=[];return n.forEach((function(n){n.events&&n.events.forEach((function(t){e.push({rule:n,event:t})}))})),e.sort((function(n,e){return n.event.ruleOrder-e.event.ruleOrder}))},p="debug",m=function(n,e){var t=function(){return"true"===n.getItem(p)},i=function(e){n.setItem(p,e)},a=[],r=function(n){a.push(n)};return e.outputEnabled=t(),{onDebugChanged:r,getDebugEnabled:t,setDebugEnabled:function(n){t()!==n&&(i(n),e.outputEnabled=n,a.forEach((function(e){e(n)})))}}},h="Module did not export a function.",g=function(n,e,t){return function(i,a,r){r=r||[];var o=n.getModuleExports(i.modulePath);if("function"!=typeof o)throw new Error(h);var s=n.getModuleDefinition(i.modulePath),c=i.settings||{};!i.hasTransformedFilePaths&&s.filePaths&&(t(c,s.filePaths,i.modulePath),i.hasTransformedFilePaths=!0);var u=e(c,a);return o.bind(null,u).apply(null,r)}},v=function(n){return"string"==typeof n?n.replace(/\s+/g," ").trim():n},_={LOG:"log",INFO:"info",DEBUG:"debug",WARN:"warn",ERROR:"error"},b="\ud83d\ude80",y=10===parseInt((/msie (\d+)/.exec(navigator.userAgent.toLowerCase())||[])[1])?"[Launch]":b,E=!1,S=function(n){if(E&&window.console){var e=Array.prototype.slice.call(arguments,1);e.unshift(y),n!==_.DEBUG||window.console[n]||(n=_.INFO),window.console[n].apply(window.console,e)}},w=S.bind(null,_.LOG),I=S.bind(null,_.INFO),A=S.bind(null,_.DEBUG),D=S.bind(null,_.WARN),k=S.bind(null,_.ERROR),C=function(){var n=E;E=!0,S.apply(null,Array.prototype.concat(_.WARN,Array.prototype.slice.call(arguments))),n||(E=!1)},T={log:w,info:I,debug:A,warn:D,error:k,deprecation:C,get outputEnabled(){return E},set outputEnabled(n){E=n},createPrefixedLogger:function(n){var e="["+n+"]";return{log:w.bind(null,e),info:I.bind(null,e),debug:A.bind(null,e),warn:D.bind(null,e),error:k.bind(null,e)}}},P=u,N="com.adobe.reactor.",O=function(n,e){var t=N+(e||"");return{getItem:function(e){try{return P[n].getItem(t+e)}catch(n){return null}},setItem:function(e,i){try{return P[n].setItem(t+e,i),!0}catch(n){return!1}}}},L=O,R="dataElements.",M=L("sessionStorage",R),x=L("localStorage",R),j={PAGEVIEW:"pageview",SESSION:"session",VISITOR:"visitor"},V={},U=function(n){var e;try{e=JSON.stringify(n)}catch(n){}return e},B=v,F=T,G={setValue:function(n,e,t){var i;switch(e){case j.PAGEVIEW:return void(V[n]=t);case j.SESSION:return void((i=U(t))&&M.setItem(n,i));case j.VISITOR:return void((i=U(t))&&x.setItem(n,i))}},getValue:function(n,e){var t;switch(e){case j.PAGEVIEW:return V.hasOwnProperty(n)?V[n]:null;case j.SESSION:return null===(t=M.getItem(n))?t:JSON.parse(t);case j.VISITOR:return null===(t=x.getItem(n))?t:JSON.parse(t)}}},K=function(n,e,t,i){return"Failed to execute data element module "+n.modulePath+" for data element "+e+". "+t+(i?"\n"+i:"")},q=function(n,e,t,i,a){return function(r,o){var s=e(r);if(!s)return i?"":void 0;var c,u,l=s.storageDuration;try{c=n.getModuleExports(s.modulePath),u=n.getModuleDefinition(s.modulePath)}catch(n){return void F.error(K(s,r,n.message,n.stack))}if("function"==typeof c){var d,f=s.settings||{};!s.hasTransformedFilePaths&&u.filePaths&&(a(f,u.filePaths,s.modulePath),s.hasTransformedFilePaths=!0);try{d=c(t(f,o),o)}catch(n){return void F.error(K(s,r,n.message,n.stack))}return l&&(null!=d?G.setValue(r,l,d):d=G.getValue(r,l)),null==d&&null!=s.defaultValue&&(d=s.defaultValue),"string"==typeof d&&(s.cleanText&&(d=B(d)),s.forceLowerCase&&(d=d.toLowerCase())),d}F.error(K(s,r,"Module did not export a function."))}},H=v,W={text:function(n){return n.textContent},cleanText:function(n){return H(n.textContent)}},Y=function(n,e,t){for(var i,a=n,r=0,o=e.length;r10?(an.error("Data element circular reference detected: "+s.join(" -> ")),n):o(n,e)}},on=function(n){return function(){if("string"==typeof arguments[0])n[arguments[0]]=arguments[1];else if(arguments[0]){var e=arguments[0];for(var t in e)n[t]=e[t]}}},sn="undefined"!=typeof window&&window.Promise||void 0!==o&&o.Promise,cn=sn,un=function(n,e,t){return function(i,a,r,o){return o.then((function(){var o,s=i.delayNext;return new cn((function(e,t){var a=n(i,r,[r]);if(!s)return e();var c=i.timeout,u=new cn((function(n,e){o=setTimeout((function(){e(new Error("A timeout occurred because the action took longer than "+c/1e3+" seconds to complete. "))}),c)}));cn.race([a,u]).then(e,t)})).catch((function(n){return clearTimeout(o),n=e(n),t(i,a,n),cn.reject(n)})).then((function(){clearTimeout(o)}))}))}},ln=sn,dn=function(n,e,t,i,a){return function(r,o,s,c){return c.then((function(){var c;return new ln((function(e,t){var i=n(r,s,[s]),a=r.timeout,o=new ln((function(n,e){c=setTimeout((function(){e(new Error("A timeout occurred because the condition took longer than "+a/1e3+" seconds to complete. "))}),a)}));ln.race([i,o]).then(e,t)})).catch((function(n){return clearTimeout(c),n=e(n),i(r,o,n),ln.reject(n)})).then((function(n){if(clearTimeout(c),!t(r,n))return a(r,o),ln.reject()}))}))}},fn=sn.resolve(),pn=function(n,e,t){return function(i,a){return i.conditions&&i.conditions.forEach((function(e){fn=n(e,i,a,fn)})),i.actions&&i.actions.forEach((function(n){fn=e(n,i,a,fn)})),fn=(fn=fn.then((function(){t(i)}))).catch((function(){}))}},mn=function(n){return Boolean(n&&"object"==typeof n&&"function"==typeof n.then)},hn=function(n,e,t,i){return function(a,r){var o;if(a.conditions)for(var s=0;s
IE 11 is not supported. For an optimal experience visit our site on another browser.
Fire engulfs high-rise housing estate in Hong Kong, killing at least 44 Hundreds of people remain unaccounted for after the fire engulfed buildings at Wang Fuk Court in the northern district of Tai Po.
Nov. 26, 2025, 5:31 AM EST / Updated Nov. 26, 2025, 6:01 PM EST
HONG KONG — A major fire tore through multiple high-rise towers at a housing complex in Hong Kong on Wednesday , killing dozens of people, the city's chief executive, John Lee, said, with 279 people still unaccounted for.
Twenty-nine others were being treated in hospitals, seven of whom were in critical condition, after the fire broke out at Wang Fuk Court in the northern district of Tai Po.
Three people, aged between 52 and 68, were arrested on suspicion of manslaughter, Reuters reported, citing Hong Kong authorities, and the death toll had risen to 44 by early morning local time.
The fire in four of the residential buildings in the complex was under control by early morning local time, Hong Kong authorities said, according to Reuters.
Massive flames and thick plumes of dark smoke could be seen coming from multiple towers at the housing complex, which opened in 1983 and has almost 2,000 residential units across eight buildings.
Harry Cheung, 66, who has lived in the area for more than 40 years, told Reuters he heard a loud noise and saw fire erupt in a nearby block.
“I immediately went back to pack up my things,” he said.
“I don’t even know how I feel right now,” he said. “I’m just thinking about where I’m going to sleep tonight, because I probably won’t be able to go back home.”
A resident who provided only her surname, Wu, told local TV station TVB: “I’ve given up thinking about my property. Watching it burn like that was really frustrating.”
People look on as thick smoke and flames rise during a major fire at the Wang Fuk Court residential estate in Hong Kong's Tai Po district on Wednesday. Tommy Wang / AFP - Getty Images
The city will "provide all possible resources," Lee said as he offered "deepest condolences to the deceased and heartfelt sympathy to their families and the injured." Hong Kong's housing secretary, Winnie Ho, said 1,400 apartments would be made available across the city for those who were displaced.
The fire broke out Wednesday afternoon and was upgraded to the highest-level alarm in the city at 6 p.m. local time (5 a.m. ET). Firefighters were still battling it as night fell.
Lee told reporters shortly after midnight that the fire was "coming under control" and that the fire service of Hong Kong had "sufficient manpower and capability" to extinguish it.
Bamboo scaffolding had been erected outside several towers as they underwent renovation, local media reported, and the city's security secretary, Chris Tang, said buildings had "protective netting" on exterior walls. "Once ignited, the intensity and speed of the fire's spread were far greater than that of materials meeting safety standards," he said. "We consider this to be unusual."
Firefighters spray water on flames as a major fire engulfs several apartment blocks at the Wang Fuk Court residential estate. AFP - Getty Images
Styrofoam boards that "spread fire very easily when exposed to heat" were also discovered placed against windows in a building inside the complex that was unaffected by the fire, he said.
Falling debris and the scaffolding impeded rescue efforts, Derek Armstrong Chan, deputy director of Fire Service operations, told The Associated Press. He said: "The temperature inside the buildings concerned is very high. It's difficult for us to enter the building and go upstairs to conduct firefighting and rescue operations."
Chinese President Xi Jinping sent condolences. Hong Kong, one of the most densely populated cities in the world, is a special administrative region that maintains a degree of autonomy from China.
The fire engulfed several apartment blocks. Yan Zhao / AFP via Getty Images
The fire is the city's deadliest since 1996, when flames ripped through a commercial building in the heart of Kowloon, killing 41 people.
Firefighter Ho Wai-ho, 37, was among the dead. He "sustained burns to his face," Fire Services Director Yeung Yan Kin said at a news conference Wednesday, adding that he was rushed to a nearby hospital, where he later died.
"I would like to extend my deepest condolences to firefighter Ho’s family," he said, adding that another firefighter was being treated for heat exhaustion.
Civil Service Secretary Ingrid Yeung praised Ho's "gallantry and selfless devotion to duty" in a statement and said officials will "make every effort to help the family of Mr Ho during this sad and difficult period."
Hong Kong has been under a red fire danger warning since Monday, which means there is an extremely high risk of fire due to recent warm weather conditions.
Jennifer Jett is the Asia Digital Editor for NBC News, based in Hong Kong.
Peter Guo is an associate producer based in Hong Kong.
Jay Ganglani, The Associated Press and Reuters contributed.